解决mysql CREATE TABLE 语法的疑问
P粉347804896
P粉347804896 2023-09-12 15:19:08
0
2
492

我尝试使用以下命令在mysql中创建表:

CREATE TABLE keys (id INT(10), key VARCHAR(100));

但是它总是给我一个类似于这样的错误:

错误 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的“keys (id INT(10), key VARCHAR(100))”附近使用的正确语法`

P粉347804896
P粉347804896

全部回复 (2)
P粉253518620

你应该非常小心地命名表和列,因为你将来可能会面临很多问题。

我建议找到那些不是MySQL保留字的名称。

如果你还想保留这些名称,你应该用反引号将其括起来。

mysql> CREATE TABLE keys (id INT(10), key VARCHAR(100)); 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 'keys (id INT(10), key VARCHAR(100))' at line 1 mysql> CREATE TABLE `keys` (id INT(10), `key` VARCHAR(100)); Query OK, 0 rows affected, 1 warning (0.97 sec) mysql> show create table keys; 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 'keys' at line 1 mysql> mysql> mysql> show create table `keys`; +-------+-----------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+-----------------------------------------------------------------------------------------------------------------------------------------------------+ | keys | CREATE TABLE `keys` ( `id` int DEFAULT NULL, `key` varchar(100) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | +-------+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.01 sec)

请注意,在使用表时必须使用反引号

    P粉649990163

    所以表名keys和字段key都是在Mysql命名空间中保留的。如果您选择一个不同的表名(例如keys_tbl)并将第二个字段重命名为key_id,您的代码将正常工作。

      最新下载
      更多>
      网站特效
      网站源码
      网站素材
      前端模板
      关于我们 免责声明 Sitemap
      PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!