Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 字段与SQL类型具有相同的名称可以吗?_Mysql_Sql - Fatal编程技术网

Mysql 字段与SQL类型具有相同的名称可以吗?

Mysql 字段与SQL类型具有相同的名称可以吗?,mysql,sql,Mysql,Sql,我可以用与SQL数据类型相同的名称命名字段和表吗?例如,下面的SQL定义在MySQL中有效吗 CREATE TABLE if not exists TABLE1 ( id INT PRIMARY KEY, text TEXT) 此外,我可以为字段提供其他表的名称吗 CREATE TABLE if not exists TABLE2 ( id INT PRIMARY KEY, table1 INT, FOREIGN KEY (table1) REFERENCES table1(id)) 这行吗

我可以用与SQL数据类型相同的名称命名字段和表吗?例如,下面的SQL定义在MySQL中有效吗

CREATE TABLE if not exists TABLE1 (
id INT PRIMARY KEY,
text TEXT)
此外,我可以为字段提供其他表的名称吗

CREATE TABLE if not exists TABLE2 (
id INT PRIMARY KEY,
table1 INT,
FOREIGN KEY (table1) REFERENCES table1(id))

这行吗?

MySQL有关键字和保留关键字的概念

您可以使用关键字作为表、列等的标识符,而无需引用它们

mysql> CREATE TABLE if not exists TABLE1 (
    -> id int PRIMARY KEY,
    -> text TEXT);
Query OK, 0 rows affected (0.02 sec)
您也可以使用保留关键字作为标识符,但必须引用它们

mysql> CREATE TABLE if not exists TABLE1 (
    -> id int PRIMARY KEY,
    -> order TEXT);
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 'order TEXT)' 
引用保留关键字,然后您可以执行以下操作:

mysql> CREATE TABLE if not exists TABLE1 (
    -> id int PRIMARY KEY,
    -> `order` TEXT);
Query OK, 0 rows affected (0.01 sec)
你怎么知道什么是关键字,什么是保留关键字


请使用以下参考文档:

@TeymourAldridge,除非您的链接是针对SQL Server的,OP询问的是MySQL。简单的方法是不要这样做,这样就永远不会成为您的问题。我是否也可以给字段指定与表相同的名称?是的,表可能与列具有相同的名称。