[英]MySQL: Trigger to Insert New Row in One Table When Another Table has a Row Inserted
[英]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
設置為任何值,所以插入表中的每一行都將其設置為相同。 由於該值必須唯一,因此只有第一個插入有效。 有兩種方法可以解決此問題:
slug
slug
字段的插入語句
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.