這個問題在這里已經有了答案: 具有身份屬性的 MySQL 陳述句 (3 個回答) 17 小時前關閉。
我有時會收到奇怪的 SQL 錯誤,這會告訴我檢查我的 MySQL 版本,例如
mysql> CREATE TABLE city (
-> id int NOT NULL IDENTITY(1, 1),
-> city_name char(128) NOT NULL,
-> lat decimal(9,6) NOT NULL,
-> long decimal(9,6) NOT NULL,
-> country_id int NOT NULL,
-> CONSTRAINT city_pk PRIMARY KEY (id)
-> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTITY(1, 1),
city_name char(128) NOT NULL,
lat decimal(9,6) NOT NUL' at line 2
所以我這樣做:
mysql> show variables like '%version%';
-------------------------- -------------------------------
| Variable_name | Value |
-------------------------- -------------------------------
| admin_tls_version | TLSv1,TLSv1.1,TLSv1.2,TLSv1.3 |
| immediate_server_version | 999999 |
| innodb_version | 8.0.27 |
| original_server_version | 999999 |
| protocol_version | 10 |
| replica_type_conversions | |
| slave_type_conversions | |
| tls_version | TLSv1,TLSv1.1,TLSv1.2,TLSv1.3 |
| version | 8.0.27-0ubuntu0.20.04.1 |
| version_comment | (Ubuntu) |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
| version_compile_zlib | 1.2.11 |
-------------------------- -------------------------------
其余的錯誤訊息告訴我檢查手冊,但我不確定要檢查哪個。這個輸出告訴我的只是我使用的是未指定的 8.0.27 版。那么,根據書籍,我的下一步應該是發現我原來的語法錯誤嗎?
uj5u.com熱心網友回復:
IDENTITY()MySQL 不支持。那是 Microsoft SQL Server 的東西(和 Sybase)。
您想使用AUTO_INCREMENT類似的功能為主鍵分配單調遞增的整數。
在這里閱讀:https : //dev.mysql.com/doc/refman/8.0/en/example-auto-increment.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/342392.html
下一篇:MySQL簡單但速度慢的查詢
