CREATE TABLE如果不是EXISTS不工作并且没有错误

时间:2016-12-15 13:15:13

标签: php mysql

问题

通过右CREATE TABLE IF NOT EXISTS $table查询应该正常工作,因为它在实时项目中工作。但是,它无法在安装后创建新表。

我已经检查过mysql错误日志,错误不存在。 无法找到mysql错误 - (请参阅How to see log files in MySQL?

我的设置

  • MySQL版本5.5.0

  • MySQL charset:UTF-8 Unicode(utf8)

  • Apache / 2.4.23(Unix)PHP / 5.6.25

  • MySQL客户端版本:mysqlnd 5.0.11-dev - 20120503 - $ Id $

  • phpMyAdmin版本信息:3.4.6

解决方案:不要包含sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO$my.cnf文件中。 其中一个命令导致问题,但最后它在删除后才起作用。

2 个答案:

答案 0 :(得分:0)

  

$ table是我要创建的表名

我相信你的SQL语句就像

CREATE TABLE IF NOT EXISTS table1

这完全错误导致您完全错过了表定义。即使您不想立即创建任何约束,也意味着列名,它们的数据类型和大小都是最小的。

答案 1 :(得分:0)

如果没有列,则无法创建表。

试试这个语法:

CREATE TABLE IF NOT EXISTS `$table` (
  `id` int(11) NOT NULL
);

此查询成功创建了表" $ table"。