我有一个扩展,在这个扩展中有一个“install.sql”文件,其中包含各种插入内容。
其中一些插入是针对可能存在或不存在的表进行的,具体取决于客户站点。我想知道的是如何做,例如:
“如果存在则创建表”,但用于“插入”。
这是我正在做的一个例子:
INSERT INTO `#__virtuemart_shipmentmethods_en_gb`
(virtuemart_shipmentmethod_id, shipment_name, shipment_desc, slug)
VALUES ((SELECT MAX(vs.virtuemart_shipmentmethod_id)
FROM `#__virtuemart_shipmentmethods` vs), 'Kiala','', 'kiala');
预先感谢您的帮助。
最佳答案
我不知道我是否答对了你的问题......
你想插入一些东西,如果它已经存在你想更新?
如果是,您可能正在寻找 THIS HERE 否则你的问题设置不好或者我来晚了:)
INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)
ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);
如果您不知道该表是否存在,那么您可能应该先检查所有表 通常我使用 pdo,不知道你用的是什么,但我的解决方案是这样的
$result = mysql_query("SHOW TABLES LIKE '#__virtuemart_shipmentmethods_en_gb'");
$tExists = mysql_num_rows($result) > 0;
if(!$tExists)
// Create Table Code here
关于mysql - Insert Into 遇到各种问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20498006/