看不出为什么它不起作用

时间:2016-04-24 14:47:03

标签: mysql sql

我正在尝试创建一些表,但我无法让我的密钥正常工作。

class M{public static void main(String[]a){System.out.print(new char[]{'H','e','l','l','o',' ','W','o','r','l','d','!'});}}

我只想在这两个表之间建立简单的关系。

1 个答案:

答案 0 :(得分:1)

您问题的直接答案是外键需要引用所有列的唯一键。这也需要两列上的唯一索引,因此它应该如下所示:

Create table FAQ (
  id int(10) PRIMARY KEY AUTO_INCREMENT,
  question text,
  answer text
);

Create table templates (
  id int(10) AUTO_INCREMENT,
  name varchar(80),
  value varchar(30),
  sql_db text,
  sql_table text,
  Primary Key(id),
  Unique (name, value)
);

Create table clientes (
  id int(10) AUTO_INCREMENT,
  nome varchar(80),
  email varchar(30),
  website varchar(80),
  template_name varchar(80),
  template_value varchar(30),
  modo varchar(10),
  data datetime,
  Primary Key (id),
  FOREIGN KEY (template_name, template_value) REFERENCES templates(name, value)
);

但是,最好使用主键(自动增加的id)。然后使用join

查找名称和值
Create table clientes (
  id int(10) AUTO_INCREMENT,
  nome varchar(80),
  email varchar(30),
  website varchar(80),
  template_id int,
  modo varchar(10),
  data datetime,
  Primary Key (id),
  FOREIGN KEY (template_id) REFERENCES templates(id)
);