我有2个主键(user_id
,post_id
) 表我想插入一行只有当表没有带一排这个user id
和post id
如果以前此键存在的数据,只能用新的数据行更新 我写此查询:使用对重复键表中有两个主键
INSERT INTO trust_list(`user_id`,`post_id`,`post_per`,`comment_per`,`cat_per`)
VALUES (7,1,'000','000','000')
ON DUPLICATE KEY UPDATE `post_per`='000',`comment_per`='000',`cat_per`='000'
例如,如果该行存在于表中:
- USER_ID:5
- POST_ID:1
- post_per:001
- comment_per:111
- cat_per:101
然后,当我执行上述查询,MySQL的更新该行,仅仅是因为该行的post_id
是“1” 而mysql不应该更新这一行。 我不明白是什么问题。上述查询的
DESC trust_list
结果是:
Field Type Null Key Default Extra
user_id int(11) NO PRI NULL
post_id int(4) NO PRI NULL
post_per tinytext YES NULL
comment_per tinytext YES NULL
cat_per tinytext YES NULL
=================
感谢我所有的朋友 当我决定删除表,并再次ceate它,我得到从该表 出口和审查.sql
文件,我看到:
CREATE TABLE IF NOT EXISTS `trust_list` (
`user_id` int(11) NOT NULL,
`post_id` int(11) NOT NULL,
`post_per` tinytext COLLATE utf8_estonian_ci ,
`comment_per` tinytext COLLATE utf8_estonian_ci ,
`cat_per` tinytext COLLATE utf8_estonian_ci ,
PRIMARY KEY (`idea_id`,`user_id`),
UNIQUE KEY `idea_id` (`idea_id`)
)
显然,问题是唯一键,我从文件中删除,然后删除trust_list
表,然后导入.sql文件 所以用这个,我的问题解决了 再次感谢
您可以发布此语句的结果:'DESC trust_list'。 – 2013-05-05 16:24:13
是的,当然,我把它添加到文章 – 2013-05-05 18:58:44