|
|
|
มันขึ้น error แบบนี้ Duplicate entry '39' for key 'PRIMARY' แก้ไงครับ |
|
|
|
|
|
|
|
ผมลองecho sql ออกดู แล้วลองไป คิวรี ดูใน mysql
มันขึ้น error แบบนี้ Duplicate entry '39' for key 'PRIMARY' แก้ไงครับ
อันนี้เป็น table
Code (SQL)
CREATE TABLE IF NOT EXISTS `wss_webboard_answer` (
`question_id` int(4) NOT NULL DEFAULT '0',
`a_uid` int(11) NOT NULL DEFAULT '0',
`a_id` int(4) NOT NULL DEFAULT '0',
`a_name` varchar(65) NOT NULL DEFAULT '',
`a_email` varchar(65) NOT NULL DEFAULT '',
`a_topic` varchar(255) DEFAULT NULL,
`a_answer` longtext NOT NULL,
`a_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`a_form_ts` int(11) NOT NULL DEFAULT '0',
`ip_answer` varchar(32) NOT NULL,
KEY `a_id` (`a_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
อันนี้เป็น คิวรี่ที่ echo ออกมาดู
insert into wss_webboard_answer set question_id = '39', a_id = '2', a_name = 'usertest', a_email = '[email protected]', a_answer = '
test post
', a_topic = 'test', a_datetime = now(), a_uid = '444', a_form_ts = '1362471106', ip_answer = 'xx.xx.xx.xx';
Tag : PHP, MySQL, HTML/CSS
|
|
|
|
|
|
Date :
2013-03-05 15:31:02 |
By :
ninjadark |
View :
6138 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพราะในฐานข้อมูลของคุณมี แถวในตาราง wss_webboard_answer ที่มี question_id = '39' อยู่แล้วครับ
เพราะคอลัมน์ question_id เป็นชนิด PRIMARY มันจึงไม่สามารถมีค่าซ้ำกันได้
|
|
|
|
|
Date :
2013-03-05 16:01:01 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำได้ แต่เขาไม่ทำกันครับ ถ้าไม่ใช่ตารางที่ออกแบบเอง และอยู่ในระหว่างทดสอบ
ถ้าคุณอยาก INSERT ข้อมูลใหม่แต่ต้นเนี่ย (ใช่ไหมครับ ผมคิดว่าคงเป็นการย้ายข้อมูลมาที่ใหม่)
แล้วไม่อยากให้มี error แบบนี้ขึ้น
ให้เปลี่ยนจาก INSERT INTO เป็น REPLACE INTO ครับ
อันหลังมันจะเขียนทับแถวที่มีข้อมูล PRIMARY หรือ UNIQUE ซ้ำกันไปเลย
|
|
|
|
|
Date :
2013-03-05 16:08:59 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|