如果表为空,则执行INSERT?

use*_*701 11 mysql sql

有没有办法在计数条件下进行插入,例如:

INSERT INTO my_table (colname) VALUES('foo') IF COUNT(my_table) < 1
Run Code Online (Sandbox Code Playgroud)

基本上,如果表当前为空,我想插入一个默认记录.我正在使用mysql.

Ric*_*iwi 24

使用SELECT而不是VALUES能够使用WHERE子句扩展查询.

EXISTS是比COUNT更好更快的测试

INSERT INTO my_table (colname)
SELECT 'foo'
WHERE NOT EXISTS (SELECT * FROM my_table)
Run Code Online (Sandbox Code Playgroud)

  • 您可能需要使用虚拟表**DUAL**才能使其正常工作.`INSERT INTO my_table(colname)SELECT'foo'FROM DUAL WHERE NOT EXISTS(SELECT*FROM my_table)` (8认同)