2010-12-22 116 views
-1

我想更新一個表,其中的內容ID +列已經存在。重複的內容

問題是,當我想讓它給了我一個消息錯誤插入:

**#1062 - Duplicate entry '35' for key 1** 

所以,我儘量讓一個更新,但它並沒有太多工作,因爲語法ISN不正確我的請求的形式SQL是:

INSERT INTO `liens_series` 
(`id`, `id_series`, `password`) 
VALUES (35, '12', 
'<br>Saison 3 en cours de production'), .... 

該列表太長。

回答

0

如果插入新行其中的ID尚未確定:

INSERT INTO `liens_series` (`id`, `id_series`, `password`) VALUES (NULL, '12', '<br>Saison 3 en cours de production'); 

INSERT INTO `liens_series` (`id_series`, `password`) VALUES ('12', '<br>Saison 3 en cours de production'); 

新的ID將在LAST_INSERT_ID()(MySQL的)或mysql_insert_id()返回(C ,PHP等)。

0

如果要插入一行,更新其內容,如果它已經存在,則使用REPLACE INTO

REPLACE INTO `liens_series` (`id`, `id_series`, `password`) VALUES (35, '12', '<br>Saison 3 en cours de production'); 

需要注意的是在幕後,ID爲35的行會被刪除(如果存在的話)然後發佈INSERT。因此,您無法僅部分更新該行,並且受影響的行數反映了DELETES的隱含數量+ INSERTS的數量。

1

您可能想要調查MySQL中INSERT語句的ON DUPLICATE KEY UPDATE子句。簡而言之,您的聲明可能會更改爲

INSERT INTO `liens_series` 
    (`id`, `id_series`, `password`) 
VALUES 
    (35, '12', '<br>Saison 3 en cours de production') 
ON DUPLICATE KEY UPDATE `id_series` = '12', 
         `password` = '<br>Saison 3 en cours de production') 

分享和享受。