簡體   English   中英

MySQL錯誤代碼1222選擇了單列?

[英]Mysql error code 1222 with a single column selected?

有人可以解釋為什么在運行此查詢后出現錯誤代碼1222(使用的SELECT語句具有不同的列數)嗎?

INSERT IGNORE INTO table1(id1)
SELECT id2 FROM table2;

很明顯,列數是相同的,所以真正的問題必須在其他地方。 但是哪里? 字段完全相同:

`id2` int(11) NOT NULL COMMENT 'blabla'

唯一的區別是數據庫引擎(表2上的MyISAM,表1上的InnoDB),但是它不能被鏈接,因為如果我在沒有這個的INSERT / SELECT中添加更多的列,它的作用就像是一種魅力。

有任何想法嗎? 謝謝。

正如Tim所提到的,請為我們提供表方案和更多信息,因為上面沒有顯示錯誤。 例如:

INSERT IGNORE INTO test_cachetags (tag, invalidations) SELECT tag, invalidations FROM cachetags;

該查詢有效,其中TAG為varchar(255),無效為整數。

好的,我終於找到了問題所在:觸發器。 基本上,我在某些時候擁有的變量數與列數不匹配。 https://dev.mysql.com/doc/refman/5.5/en/stored-program-variables.html )。

現在,我找到了原因,這似乎非常明顯,但是老實說,MySQL可能更明確。 並不是我在后台觸發了一個和/或一個簡單的查詢(實際上,這個查詢特別復雜)。

因為在該字段上發生記錄錯誤,因為那是我忘記聲明的錯誤。

謝謝你的時間家伙。

暫無
暫無

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

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