CREATE TABLE IF NOT EXISTS 在MySQLdb中有效吗?语法?
我创建了一个叫“table2”的表,但在运行我的代码时收到了警告(表已经存在)。我想要的效果是只有在这个表不存在的情况下才创建它。
经过一些研究,我在MySQL语法网站上发现,在MySQL中可以使用“CREATE TABLE IF NOT EXISTS”这个语句。
我的代码是:
cursor.execute('CREATE TABLE IF NOT EXISTS (2 INT)`table2`')
但是它给我提供了这个警告:
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(2 INT)`table2`' at line 1")
我的数据库版本是:5.1.54-1ubuntu4。谢谢,汤姆。
5 个回答
2
首先,建议你使用官方文档,而不是随便找个网站。官方的资料通常会更好。其次,你可能想要的内容更接近于:
CREATE TABLE IF NOT EXISTS table2 (columnname INT);
4
你的 CREATE TABLE
命令在语法上有几个问题。
首先,你把表的名字放在了列定义之后。其实应该把表名放在前面,像这样:
CREATE TABLE IF NOT EXISTS table2 (<列定义>);
其次,你用
2
作为列名,但我不确定2
是否是一个有效的列名。如果可以的话,应该用引号把它括起来,以便和普通的数字区分开。
你可以在 MySQL 文档 中了解更多关于 CREATE TABLE
语法的信息。
12
MySQL的语法是
CREATE TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]
使用以下内容...
cursor.execute('CREATE TABLE IF NOT EXISTS `table2` (`something` int(2))')
结果是:
__main__:1: Warning: Table 'table2' already exists