在以下MySql查询中出了什么问题?

时间:2018-11-09 14:17:06

标签: mysql

def iterate_csv
  puts 'lets iterate!!'
  CSV.foreach(@file) { |line| 
    begin
      puts 'loop is on fire...'
      # handle line here
    rescue CSV::MalformedCSVError => e
      puts e
      # handle malformed row here...
    next
    end
  }
end

显示

  

ErrorNr:1064。

如何解决此错误?

2 个答案:

答案 0 :(得分:0)

试一下

create table roleusers(username varchar(10) not null primary key );

create table rolemaster(roleno int(2) not null primary key ,
                        rolename varchar(20));

 create table roombed(roomnumber varchar(10),
                     bednumber varchar(10) not null primary key,
                     username varchar(10),
                     foreign key (username) references roleusers (username));

我已经添加了一个roleusers表,所以我可以给你一个有效的脚本。

编辑:对于初学者来说,您做错了什么是主键之前的逗号。 您添加到我们不知道的表上的外键必须引用另一个表上的键,因此在发布的示例中,我添加了一个Roleusers表设置username作为主键,以便以后可以将其引用为外键键。 您还忘记了在用户名上正确定义varchar。如另一个答案所述。

希望这种解释有所帮助

答案 1 :(得分:0)

您忘记定义username varchar的大小。

CREATE TABLE roombed
(
    roomnumber VARCHAR(10),
    bednumber VARCHAR(10) NOT NULL PRIMARY KEY,
    username VARCHAR(10),
    --              ^--^----------- This
    FOREIGN KEY(username) REFERENCES roleusers(username)
);