我在表格中有多列。我有一个唯一的列,如果条目与此列重复,我希望更新两列,否则插入新行。我在php中使用了一个单独的函数,但为了简单起见,我将分享mysql代码。在这种情况下,col1是固定的。如果col1不重复,则插入行。但即使col1重复,这也只是插入一个新行。 col4也可以为null。所有SO问题都没有解决我的问题。
key
答案 0 :(得分:1)
它不起作用,因为您没有在UNIQUE
列上定义col1
键。如果插入导致UNIQUE/PrimaryKey
列中出现重复密钥违规,那么每INSERT ... ON DUPLICATE KEY UPDATE Documentation
UPDATE
代替INSERT
。
因此,在您的情况下,您必须通过在列上定义主键/唯一键约束来使col1
成为键列;为了让它奏效。