[英]Mysql ERROR 1136 (21S01): Column count doesn't match value count at row 1
我在 mysql 數據庫中有以下現有表:
+---------------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+---------------+------+-----+---------+----------------+
| f1 | int(11) | NO | PRI | NULL | auto_increment |
| field2 | int(11) | NO | MUL | NULL | |
| field3 | int(11) | YES | | NULL | |
| field4 | int(11) | YES | | NULL | |
| field6 | varchar(64) | YES | | NULL | |
| field7 | varchar(16) | YES | | NULL | |
| field8 | varchar(32) | YES | | NULL | |
| field9 | varchar(128) | YES | | NULL | |
| field10 | varchar(128) | YES | | NULL | |
| field11 | varchar(128) | YES | | NULL | |
| field12 | varchar(64) | YES | | NULL | |
| field13 | varchar(32) | YES | | NULL | |
| field14 | varchar(32) | YES | | NULL | |
| field15 | int(11) | YES | MUL | NULL | |
| field16 | date | YES | | NULL | |
| field17 | date | YES | | NULL | |
| field18 | int(11) | YES | MUL | NULL | |
| field19 | varchar(64) | YES | | NULL | |
| field20 | varchar(64) | YES | | NULL | |
| field21 | varchar(16) | YES | | NULL | |
| field22 | varchar(20) | YES | | NULL | |
| field23 | varchar(1000) | YES | | NULL | |
| field24 | int(11) | NO | MUL | NULL | |
| field25 | int(11) | NO | | 0 | |
| field26 | decimal(19,2) | YES | | 0.00 | |
| field27 | decimal(19,2) | YES | | 0.00 | |
| field28 | int(11) | YES | MUL | NULL | |
| field29 | int(11) | YES | MUL | NULL | |
| field30 | varchar(128) | YES | | NULL | |
| field31 | varchar(128) | YES | | NULL | |
| field32 | varchar(16) | YES | | NULL | |
| field33 | int(11) | YES | | NULL | |
| field34 | int(11) | YES | | NULL | |
| field35 | varchar(128) | YES | | NULL | |
| field36 | int(11) | YES | MUL | NULL | |
| field37 | int(11) | YES | | NULL | |
+---------------------+---------------+------+-----+---------+----------------+
我嘗試使用以下語句添加另一行,但出現以下錯誤:
ERROR 1136 (21S01): Column count doesn't match value count at row 1
以下是我嘗試將行插入表的方法:
insert into table (Field, Type, Null, Key, Default, Extra) VALUES ("contract_expiration", "date", "YES", "", "NULL", "");
insert into table VALUES ('contract_expiration','date','YES','','NULL','');
兩者都返回相同的錯誤。 桌子上沒有觸發器,我不確定發生了什么。
有什么建議? 我對 mysql 管理比較陌生,我知道一點,但這讓我很難過,對解決方案的搜索一無所獲。
任何可以提供的幫助將不勝感激!
NULL
不是有效的字段名稱:
insert into `table`(Field, Type, Null, Key, Default, Extra)
VALUES ("contract_expiration", "date", "YES", "", "NULL", "");
而Key
和default
是保留字。 嘗試這個:
insert into `table`(Field, `Type`, `Null`, `Key`, `Default`, Extra)
VALUES ("contract_expiration", "date", "YES", "", "NULL", "");
我有一個類似的案例,我從開發服務器獲取表定義,從實時服務器獲取數據,結果發現它們實際上並不完全相同。
我發現差異的方式是(可能有更聰明的方法來做到這一點,但我就是這樣做的):
SHOW CREATE TABLE mytable;
我在所有 3 個案例(實時數據庫、開發數據庫和我使用CREATE TABLE xxx like xxx
創建的新數據庫, CREATE TABLE xxx like xxx
)上運行了這個。
然后我簡單對比了3,發現live和dev的列集不同,所以我干脆跑了
ALTER TABLE xxx DROP yyy;
直到新表與轉儲的表相同; 然后我可以導入數據。
mysql> desc classroom; +---------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+----------------+ | clId | int(11) | NO | PRI | NULL | auto_increment | | clFName | varchar(30) | NO | | NULL | | | clSName | varchar(10) | NO | | NULL | | | clCapc | int(3) | NO | | NULL | | +---------+-------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec) mysql> select * from classroom; +------+------------+---------+--------+ | clId | clFName | clSName | clCapc | +------+------------+---------+--------+ | 1 | Classroom1 | cl1 | 100 | | 2 | 2 | 2 | 2 | | 3 | 3f | 3s | 3 | | 4 | 3f | 3s | 3 | | 5 | class4 | class4 | 100 | +------+------------+---------+--------+ 5 rows in set (0.00 sec)
我也有同樣的錯誤
mysql> insert into classroom values('Gudadhe', 'Akash', 20); ERROR 1136 (21S01): Column count doesn't match value count at row 1
這個錯誤可以通過在直接插入之前指定列名來解決,如下
通過編寫classroom(clFName, clSName, clCapc),我們指定要插入值的列
mysql> insert into classroom(clFName, clSName, clCapc) values('Gudadhe', 'Akash', 20); Query OK, 1 row affected (0.06 sec)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.