MYSQL - 如果表为空则插入

标签 mysql

如果表为空(0 行),我想在表中插入一些数据。

我试过这个:

IF NOT EXISTS(SELECT 1 FROM `account_types`)
THEN
       INSERT INTO `account_types` (`type`, `group`) VALUES ('400', 'test');
       INSERT INTO `account_types` (`type`, `group`) VALUES ('401', 'test2');
END IF;

但是我明白了

Error Code: 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 'IF NOT EXISTS(SELECT 1 FROM account_types) THEN INSERT INTO `account_types' at line 1

我能做什么?我正在使用 MYSQL

最佳答案

INSERT INTO `account_types`(`type`, `group`)
SELECT * FROM
(SELECT '400' `type`, 'test' `group` UNION ALL
 SELECT '401' `type`, 'test2' `group` UNION ALL
 SELECT '402' `type`, 'test3' `group`) A
WHERE NOT EXISTS (SELECT NULL FROM account_types B WHERE A.type=B.type);

演示

http://sqlfiddle.com/#!9/d1e80e/1

关于MYSQL - 如果表为空则插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49941928/

相关文章:

mysql - 索引位域的排序顺序

php - mysql 查询 - 不要在多个 (5) 列中显示重复项?

mysql - spring mvc 3 hibernate 异常

php - 检查某行某列某个字段是否为空

mysql - 索引名称在 Mysql 的整个数据库中必须是唯一的吗?

mysql - 如何计算给定状态的列状态总时间

c# - 在 C# 进程中使用 mysqldump.exe 的 MySQL 重复模式

php数据库连接/选择

php - 使用PHP和mysql大数据导入到多张外键表

sql - innodb_file_per_table 不起作用