下面是完整的查詢:爲什麼只有一行插入到mysql表中?
INSERT IGNORE INTO db2.story (created, title, body)
SELECT
FROM_UNIXTIME(n.created),
n.title,
b.body_value
FROM db1.node n, db1.body_field b
WHERE n.nid= b.id and n.type IN ('story');
的查詢返回完整的結果,但整個查詢只是插入的第一行的選擇部分。
這個查詢有什麼問題,以及如何解決它?
更新:這裏是db2.story的結構:
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(100) | NO | | NULL | |
| body | longtext | NO | | NULL | |
| teaser | longtext | NO | | NULL | |
| created | datetime | NO | | NULL | |
| visits | int(11) | NO | | NULL | |
| slug | varchar(100) | NO | UNI | NULL | |
+----------+--------------+------+-----+---------+----------------+
擺脫忽略並查看錯誤被拋出。可能是一個重要的違規,如重複密鑰。如果性能不是問題,並且您想更新重複項,您可以隨時進行REPLACE INTO – Ray 2015-01-20 19:18:48
當我擺脫IGNORE mysql投訴時:重複輸入''作爲關鍵'slug',這並不奇怪。 – supermario 2015-01-20 19:23:10
db2.story表上是否有主鍵?你能告訴我們'DESC db2.story'的輸出嗎? – 2015-01-20 19:32:52