我一直试图让以下SQL工作,但似乎跳过了插入功能。基本上更新应该优先考虑它应该触发的大部分时间。
UPDATE `teams-tasks`
SET status=(:s), name=(:n), description=(:d), importance=(:i), applies=(:a)
WHERE teamId =(:t) AND date=(:da) AND playerId =(:p) AND creatorId =(:c);
IF (SELECT ROW_COUNT() = 0);
INSERT INTO `teams-tasks`
( status, date, creatorId, teamId, playerId, name, description, importance, applies )
VALUES
( (:s), (:da), (:c), (:t), (:p), (:n), (:d), (:i), (:a) ))
我在做错了什么?
如果重要的话,我正在使用php pdo进行数据库连接
感谢
答案 0 :(得分:0)
用户替换为查询,确保该行是否存在,它将更新数据,如果行不存在,则会插入日期。
检查重复条目,它在内部比较主键
e.g。
REPLACE INTO table_name(column_name1,column_name2,…)
VALUES(value1,value2,…)
e.g。
REPLACE INTO offices(officecode,city)
VALUES(8,'San Jose')
由于 阿米特
答案 1 :(得分:0)
你应该使用INSERT ... ON DUPLICATE KEY UPDATE
例如
INSERT INTO AggregatedData (datenum,Timestamp)
VALUES ("734152.979166667","2010-01-14 23:30:00.000")
ON DUPLICATE KEY UPDATE
Timestamp=VALUES(Timestamp)