【问题标题】:How to find the names of all tables created in the last SQL statement using PHP?如何使用 PHP 查找在最后一条 SQL 语句中创建的所有表的名称?
【发布时间】:2017-04-26 22:34:37
【问题描述】:

我有如下代码:

$import = "CREATE TABLE foo..."; // an SQL import containing some CREATE TABLE, ALTER TABLE, etc.
$result = $mysqli->query($import) or die ($mysqli->error);

如何找到在上一个 SQL 查询(即$import 语句)中创建的所有表的名称?我想知道 MySQL 中是否有一种特殊的方法可以做到这一点,而不是仅仅搜索 CREATE TABLE 的语句,这有点像一个肮脏的 hack。

【问题讨论】:

  • 不知道有没有别的办法。尝试获取查询前后的表列表并进行比较。
  • @bansi 嗯,是的,我在想也许会有类似insert_id 的东西,但是对于桌子......我想我对这个有点过于乐观了。
  • 如果你写了查询,你应该知道
  • @Dagon 我只是为了论证的缘故在这里展示了一个静态查询,但实际上它来自一个 SQL 导入文件,因此本质上非常动态。
  • 丑陋的正则表达式?

标签: php mysql sql create-table


【解决方案1】:

使用information_schema.TABLES

$time = time();

//create tables here  
...

select table_name, create_time 
from information_schema.TABLES
where create_time > $time
where table_schema = 'andomar'
order by CREATE_TIME desc

【讨论】:

  • where table_schema = 'andomar' 为什么会有这个部分
  • 并注明数据库名称
  • 哦,你起了这个名字,我已经对这个问题感到困惑了,他问问题的方式,我认为这个答案是 +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多