如标题所述,是否可以在create table
查询中添加insert
查询。
我的插入查询就像:INSERT INTO table (column1, column2) VALUES (:column1, :column2) ON DUPLICATE KEY UPDATE column2 = values(column2)
我希望它像INSERT INTO table (column1, column2) VALUES (:column1, :column2) AND CREATE TABLE IF NOT EXISTS $tablename (...) ON DUPLICATE KEY UPDATE column2 = values(column2)
哪里$tablename = "table_".$column1;
编辑:
另外,如果不可能的话,现在我可以用pdo和php有效地实现同样的效果。
最佳答案
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
[PARTITION (partition_name,...)]
[(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
只有重复的密钥更新。插入期间没有用于创建表的功能。
如果确实需要此功能,则需要将其分为3个查询。
第一:
SELECT * FROM table WHERE column2 ='column2 value';
如果通过选择查询未找到结果,则插入下标。
否则创建表。
对于上述实现,您可以使用pdo prepare / query。
注意:动态创建表不是一个好主意。如果这样做,最终您可能不知道那里有多少张桌子。您需要找到一些更好的算法。
关于php - 插入并创建表(如果不存在)…重复键更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43884718/