我想将行添加到我的关系表中,其中将更新旧行并添加新行。这是我的查询(id是唯一的键):
INSERT INTO table_rel (ID, player, team, status) VALUES (1,1,1,0), (2,3,1,1)
ON DUPLICATE KEY UPDATE status=VALUES(status);
在应该创建的行中,我应该用什么来代替id?如。 (false,2,1,1)
我想将行添加到我的关系表中,其中将更新旧行并添加新行。这是我的查询(id是唯一的键):
INSERT INTO table_rel (ID, player, team, status) VALUES (1,1,1,0), (2,3,1,1)
ON DUPLICATE KEY UPDATE status=VALUES(status);
在应该创建的行中,我应该用什么来代替id?如。 (false,2,1,1)
2条答案
按热度按时间6fe3ivhb1#
如果这是一个自动增量列,您可以提供一个
NULL
价值观。最简单的方法是使用关键字null有很多其他表达式可以用来返回空值。
演示如何为自动增量列提供null关键字,以及提供非null值的其他行:
3gtaxfhh2#
你没有。使用:
您承诺提供所有列出的值。然后用
你提供的是实际值,
ID
包括(即使是新条目)。在这种情况下如果没有ID=1
或者ID=2
将创建条目,否则为重复键创建条目value
将被覆盖。另一种解决方案如果不想为新条目指定键,则必须使用不同的语句(请注意缺少的列):
前提是
table_rel
有AUTO_INCREMENT
选项开启ID
(以防万一:ALTER TABLE table_rel MODIFY ID INTEGER NOT NULL AUTO_INCREMENT;
).更新:依赖
AUTO_INCREMENT
你可以提供一个NULL
并让引擎为您生成一个新密钥。有关更完整的描述,请参见斯宾塞7593的答案。