如果没有唯一键,则插入记录 [英] Insert record if not exist without Unique key
本文介绍了如果没有唯一键,则插入记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个代码,但有时它会插入双倍记录.我无法为字段 user_subid
设置唯一键.
I have this code, but sometimes it's inserting me double records. I cannot set a unique key for field user_subid
.
$sql="SELECT `user_subid` FROM `clicks` WHERE `user_subid`='".$user_subid."'";
$query=mysql_query($sql);
if(mysql_num_rows($query)==0){
$sqlIns="INSERT INTO `clicks` (`file_id`, `country`, `date`, `timeClick`, `user_subid`) VALUES ('".$fileid."', '".$country."', '".$date."', '".$timeClick."', '".$user_subid."')";
if(mysql_query($sqlIns)==true){
echo 1;
}
else { echo 0;}
}
我尝试过:
INSERT INTO `clicks` (
`id` ,
`file_id` ,
`country` ,
`date` ,
`timeClick` ,
`user_subid`
)
VALUES (
NULL , '1500', 'Canada', '2014-05-24', '1400934475', '7c282b9227328778680d5826e01f6d'
) WHERE NOT EXISTS (SELECT * FROM `clicks` WHERE `user_subid`='7c282b9227328778680d5826e01f6d');
但它不起作用.
推荐答案
你在找这个吗?
INSERT 忽略 INTO 点击( id 、 file_id 、 country 、 date 、 timeClick 、 user_subid )值(NULL、'1500'、'加拿大'、'2014-05-24'、'1400934475'、'7c282b9227328778680d5826e01f6d')
INSERT IGNORE INTO clicks ( id , file_id , country , date , timeClick , user_subid ) VALUES ( NULL , '1500', 'Canada', '2014-05-24', '1400934475', '7c282b9227328778680d5826e01f6d' )
INSERT INTO `clicks` (
`id` ,
`file_id` ,
`country` ,
`date` ,
`timeClick` ,
`user_subid`
)
SELECT `id` ,
`file_id` ,
`country` ,
`date` ,
`timeClick` ,
`user_subid`
FROM
(SELECT NULL id , '1500' `file_id` , 'Canada' `country` , '2014-05-24' `date` , '1400934475' `timeClick` , '7c282b9227328778680d5826e01f6d' `user_subid`) a
LEFT JOIN `clicks` b ON
a.id = b.id AND a.`file_id` = b.`file_id` AND a.`user_subid` = b.`user_subid`
WHERE b.`user_subid` IS NULL;
或不存在
INSERT INTO `clicks` (
`id` ,
`file_id` ,
`country` ,
`date` ,
`timeClick` ,
`user_subid`
)
SELECT `id` ,
`file_id` ,
`country` ,
`date` ,
`timeClick` ,
`user_subid`
FROM
(SELECT NULL id , '1500' `file_id` , 'Canada' `country` , '2014-05-24' `date` , '1400934475' `timeClick` , '7c282b9227328778680d5826e01f6d' `user_subid`) a
WHERE NOT EXISTS (
SELECT 1
FROM `clicks`
WHERE `user_subid` = '7c282b9227328778680d5826e01f6d')
这篇关于如果没有唯一键,则插入记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文