是否可以使用;索引“;作为mysql中的列名

是否可以使用;索引“;作为mysql中的列名,mysql,command-line,Mysql,Command Line,我必须通过mysql命令行创建数据库和表,因为这是访问服务器的唯一方法。我尝试创建一个带有索引列(而不是更常见的“ID”列)的表,但它总是给我一个错误 我发现“Index”是mysql中的一个命令,但为了与我为处理正在创建的数据库而设置的程序保持一致,我不想更改列的名称 如何阻止mysql命令行将“Index”解释为命令?您可以将名称括在反引号中。这允许保留字用作列和表的名称,这是一个糟糕的想法 create table t ( `index` int primary key,

我必须通过mysql命令行创建数据库和表,因为这是访问服务器的唯一方法。我尝试创建一个带有索引列(而不是更常见的“ID”列)的表,但它总是给我一个错误

我发现“Index”是mysql中的一个命令,但为了与我为处理正在创建的数据库而设置的程序保持一致,我不想更改列的名称


如何阻止mysql命令行将“Index”解释为命令?

您可以将名称括在反引号中。这允许保留字用作列和表的名称,这是一个糟糕的想法

create table t (
    `index` int primary key,
    . . .
);

无论何时引用该列,都需要使用反引号。

可以将名称括在反引号中。这允许保留字用作列和表的名称,这是一个糟糕的想法

create table t (
    `index` int primary key,
    . . .
);

每当你提到该专栏时,你都需要使用反引号。

正如@Gordon Linoff所说,这是个坏主意


使用“id”作为该列的名称。

正如@Gordon Linoff所说,这是个坏主意


使用“id”作为该列的名称。

或者您可以引用该列的名称,但请不要引用。你以后会恨自己的。相信我们。另外,使用列作为索引的事实应该与列的名称无关。谢谢Brian,这可能会在以后派上用场。安迪,我明白,我正在改变我写的程序,用ID代替索引,但是知道引文语法可能会有用,当这是不可行的。或者您可以引用列名,但请不要引用。你以后会恨自己的。相信我们。另外,使用列作为索引的事实应该与列的名称无关。谢谢Brian,这可能会在以后派上用场。安迪,我明白,我正在改变我写的程序,用ID代替索引,但是知道引文的语法可能会派上用场,这是不可行的。谢谢,你可能是对的。如果我必须确保它的反向引号,这将是一个坏主意,因为这会导致更多的错误。谢谢,你可能是对的,如果我每次都要确保它在反报价中,这是个坏主意,因为那样会导致更多可能的错误。