我一直在編寫代碼並在我遇到此錯誤時測試它。錯誤(1054):'field_list'中的未知列'enable_flag'
update products set enable_flag='Y' where prod_id=31745
ERROR @ 214 : (1054)
Unknown column 'enable_flag' in 'field list'
表中列出了「enable_flag」字段。我已經嘗試了上述SQL命令的幾種變體。我已經在「產品」周圍反覆提示,圍繞「enable_flag」,我嘗試重新輸入命令 - 一切都無濟於事。我甚至認爲我可能超過了65,536個字符的長度限制 - 但不是。所以我來到這裏,閱讀其他人有類似的問題,但這些都是「你打錯了X」或「你忘了桌子的名字」等等。這讓我有點難過。我正在使用MySQL(最新版本),PHP 5.4.12,昨天之前我主要使用表格的前半部分。所以現在我開始與下半場合作,並且發生這種情況。另外,enable_flag是第52列。我知道你可以有4096列。然而,從列52上的任何內容不能被更新,插入等....
下面是表「產品」轉儲:
+--------------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------------+------+-----+---------+----------------+
| prod_id | bigint(20) | NO | PRI | NULL | auto_increment |
| sku | varchar(40) | YES | | NULL | |
| upc | varchar(40) | YES | | NULL | |
| title | text | YES | | NULL | |
| long_desc | mediumtext | YES | | NULL | |
| cat_id | int(11) | YES | | NULL | |
| size | varchar(80) | NO | | NULL | |
| color | varchar(80) | NO | | NULL | |
| model | varchar(80) | YES | | NULL | |
| quantity | int(11) | YES | | NULL | |
| stock_status_id | int(11) | YES | | NULL | |
| image_id | bigint(20) | YES | | NULL | |
| mfg_id | int(11) | YES | | NULL | |
| shipping | decimal(10,2) | YES | | NULL | |
| price | decimal(10,2) | YES | | NULL | |
| points | decimal(10,2) | YES | | NULL | |
| tax_class_id | int(11) | YES | | NULL | |
| weight | decimal(10,2) | YES | | NULL | |
| width | decimal(10,2) | YES | | NULL | |
| length | decimal(10,2) | YES | | NULL | |
| height | decimal(10,2) | YES | | NULL | |
| viewed | int(11) | YES | | NULL | |
| date_used | datetime | YES | | NULL | |
| date_added | datetime | YES | | NULL | |
| date_modified | datetime | YES | | NULL | |
| date_available | datetime | YES | | NULL | |
| sellor_id | int(11) | YES | | NULL | |
| sellor_product_id | varchar(80) | YES | | NULL | |
| state_codes | text | YES | | NULL | |
| ground_ship_only | varchar(1) | YES | | n | |
| adult_sig_req | varchar(1) | YES | | n | |
| no_drop_ship | varchar(1) | YES | | n | |
| priority | int(3) | YES | | NULL | |
| unlimited_stock | varchar(1) | YES | | NULL | |
| reorder_level | int(11) | YES | | NULL | |
| license_key | text | YES | | NULL | |
| store_cost | decimal(10,2) | YES | | NULL | |
| msrp | decimal(10,2) | YES | | NULL | |
| handling_cost | decimal(10,2) | YES | | NULL | |
| min_order_quantity | int(11) | YES | | NULL | |
| max_order_quantity | int(11) | YES | | NULL | |
| weight_major | decimal(10,2) | YES | | NULL | |
| weight_minor | decimal(10,2) | YES | | NULL | |
| warehouse | text | YES | | NULL | |
| shipping_msg | text | YES | | NULL | |
| category_special | varchar(1) | YES | | NULL | |
| homepage_special | varchar(1) | YES | | NULL | |
| shipping_option | text | YES | | NULL | |
| product_type | text | YES | | NULL | |
| related_products | mediumtext | YES | | NULL | |
| product_url | text | YES | | NULL | |
| enable_flag | varchar(1) | YES | | NULL | |
| purchasable | varchar(1) | YES | | NULL | |
| price_msg | text | YES | | NULL | |
| in_stock_msg | text | YES | | NULL | |
| out_of_stock_msg | text | YES | | NULL | |
| variations | text | YES | | NULL | |
| attributes | text | YES | | NULL | |
| delete_flag | varchar(1) | YES | | NULL | |
| short_desc | text | YES | | NULL | |
| cross_ref | text | YES | | NULL | |
| model_no | varchar(40) | YES | | NULL | |
| pkg_qty | int(11) | YES | | 1 | |
| military_spec | varchar(40) | YES | | NULL | |
| grips | varchar(80) | YES | | NULL | |
+--------------------+---------------+------+-----+---------+----------------+
4096 colums不是固定的數字。實際數量取決於行的大小。請閱讀更多:http://dev.mysql.com/doc/refman/4.1/en/column-count-limit.html – andrew 2015-02-24 14:51:37
**每個表的最大行大小爲65,535字節。這個最大值適用於所有的存儲引擎,但是給定的引擎可能會有額外的約束,導致有效的最大行大小。**(與@andrew相同的源代碼,但我沒有刷新以查看他的評論^^) – Naruto 2015-02-24 14:53:22
也許你可以通過使用更好的類型從列中擠出更多字節。您的標誌可以從'varchar(1)'更改爲'char(1)',甚至更好'tinyint'。我認爲文字和類似的文字不會計算在特殊商店中。 – ToBe 2015-02-24 14:55:16