我只需要创建一个表并插入第一条记录,如果该表是新创建的。
我确实使用以下语句创建表:
CREATE TABLE IF NOT EXISTS tableName (
id int(9) NOT NULL,
col1 int(9) DEFAULT NULL,
col2 int(3) unsigned zerofill DEFAULT NULL,
PRIMARY KEY(id)
) ENGINE = InnoDB DEFAULT CHARSET = latin1;
如何仅在刚刚创建表时插入第一条记录?
2条答案
按热度按时间gwo2fgha1#
这是使用insert ignore命令而不是insert命令的好地方。
从mysql文档:
执行insert语句时发生的错误将被忽略。例如,在不忽略的情况下,复制表中现有唯一索引或主键值的行将导致重复键错误,并且语句将中止。使用ignore时,将丢弃该行,并且不会发生错误。忽略的错误将生成警告。
a9wyjsp72#
将创建和插入合并到单个语句中:
如果它不创建表,
AS SELECT ...
忽略子句。