除了mysql中的主列之外的INSERT或UPDATE

时间:2013-01-12 11:23:22

标签: mysql insert

我有一个包含以下列的表

id -> VARCHAR (PRIMARY KEY)
data -> TEXT
user_id -> VARCHAR

如果行尚不存在,我想插入此表。否则,请更新data列并保留其他所有内容。目前我在做这个

REPLACE INTO collate(id,user_id,data)VALUE('$id','$user_id','$data')。但这会删除一行(如果找到),然后再次插入。它是服务器密集型的

2 个答案:

答案 0 :(得分:3)

正如REPLACE Syntax所述:

  

REPLACE是SQL标准的MySQL扩展。它可以插入,也可以删除和插入。对于标准SQL的另一个MySQL扩展 - 插入或更新 - 查看Section 13.2.5.3, “INSERT ... ON DUPLICATE KEY UPDATE Syntax”

因此:

INSERT INTO collate
  (id, user_id, data)
VALUES
  ('$id','$user_id','$data')
ON DUPLICATE KEY UPDATE
  data = VALUES(data)

答案 1 :(得分:0)

您应该检查以下网址 insert-on-duplicate(INSERT ... ON DUPLICATE KEY UPDATE语法 )

相关问题