mysql - Insert Into 遇到各种问题

标签 mysql sql

我有一个扩展,在这个扩展中有一个“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/

相关文章:

php - 从动态 jQuery 表单向 MySQL 添加数据

mysql - 如何在 TeamSQL 中编辑或删除特定连接

mysql - MySQL 中完全支持 UTF8 的数据类型和排序规则

mysql - 结合查询机智

mysql - 自连接查找行位置

MySql查询将小写更改为大写

MYSQL文档语法语法

sql - 在 Microsoft Access 中从 ... 中选择 Top (all but 10)

java - 关于 SQL 目录的问题 - 它们到底是什么?

php - 不能使用函数返回值