仅当它为空时如何插入到 MySQL 表中?
我试过这个(WHERE
在那个位置无效):
INSERT INTO users(username, password, name, last_name, department, salary, age, email, enabled)
VALUES (
# some values
),
(
# some values
),
# even more rows
WHERE NOT EXISTS (SELECT * FROM users);
ChatGPT 建议:
INSERT INTO users (username, password, name, last_name, department, salary, age, email, enabled)
SELECT * FROM (
SELECT
# values
UNION ALL
SELECT
# values
UNION ALL
# ...
) AS tmp
WHERE NOT EXISTS (SELECT * FROM users);
StackOverflow 有类似问题的解决方案,但它不适合插入多行(据我了解)
INSERT INTO my_table (colname)
SELECT 'foo'
WHERE NOT EXISTS (SELECT * FROM my_table)
看来我的 MySQL 版本是 8.0.32(如中所示Help -> About Workbench
)
使用 ROW 构造函数。
演示
小提琴