呵,easy,改成这样CREATE TABLE empright (
  login varchar(20) DEFAULT '' NOT NULL,
  `right` varchar(4) DEFAULT '' NOT NULL,
  UNIQUE empright_x (login,`right`)
);因为right是MySQL里面的保留字

解决方案 »

  1.   

    修改成这样还是不行
    CREATE TABLE empright (
      login varchar(20) DEFAULT '' NOT NULL,
      'right' varchar(4) DEFAULT '' NOT NULL,
      UNIQUE empright_x (login,'right')
    );
    错误信息为:
    ERROR 1064 at line 629: 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 '
    'right' varchar(4) DEFAULT '' NOT NULL,
      UNIQUE empright_x (l
      

  2.   

    重新描述一下问题:我以前的数据库在3.22.27上
    有一个表的一个列名为right3.22.27版允许列名为right
    我在3.22.27版的数据库上执行这样的建表语句可以成功:
    create table mytable2(right int not null);我现在要把数据库迁移到另一台服务器上,数据库版本为4.0.16
    但4.0.16好像不允许列名为right
    执行这样的语句会报错:
    create table mytable2(right int not null);ERROR 1064: You have an error in your SQL syntax.  Check the manual that corresp
    onds to your MySQL server version for the right syntax to use near 'right int no
    t null)' at line 1我现在没有办法修改列名,因为很多程序使用了这个列,我不可能去逐一的修改程序。
    请问有没有办法解决,多谢!!!!!!