簡體   English   中英

為什么只有一行插入到mysql表中?

[英]Why only one row is inserted into mysql table?

這是完整的查詢:

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    |                |
+----------+--------------+------+-----+---------+----------------+

這里的問題是存在於場slug的唯一鍵。 因為您沒有在插入語句中將slug設置為任何值,所以插入表中的每一行都將其設置為相同。 由於該值必須唯一,因此只有第一個插入有效。 有兩種方法可以解決此問題:

  1. 刪除的唯一約束slug
  2. 將唯一數據添加到slug字段的插入語句

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM