创建引用相同 table 的 table 时使用 FROM 子句
Use FROM clause when creating a table that references the same table
我正在使用 MySQL Workbench 并且我正在尝试创建一个带有主键约束的 table 而不使用 PRIMARY KEY 关键字。
create table employee
(
e_name varchar(20),
e_surname varchar(20),
depart varchar(20),
salary int,
check (e_name is not null and 1 = (select count(*)
from employee E
where e_name=E.e_name and e_surname=E.e_surname))
);
此查询导致此错误:Error Code: 1146. Table 'test.employee' doesn't exist
我可以使用 FROM 来引用我正在创建的 table 吗?在 MySQL 中是否允许?
没有不使用 primary key
关键字的主键约束。主键具有三个属性:
- 它是独一无二的。
- 不是
NULL
。
- 每个table只有一个。
第三个是你不能保证的。但是,您可以轻松地施加前两个条件:
create table employee (
e_name varchar(20) NOT NULL UNIQUE,
e_surname varchar(20),
depart varchar(20),
salary int
);
没有为此目的使用 check
约束。
我正在使用 MySQL Workbench 并且我正在尝试创建一个带有主键约束的 table 而不使用 PRIMARY KEY 关键字。
create table employee
(
e_name varchar(20),
e_surname varchar(20),
depart varchar(20),
salary int,
check (e_name is not null and 1 = (select count(*)
from employee E
where e_name=E.e_name and e_surname=E.e_surname))
);
此查询导致此错误:Error Code: 1146. Table 'test.employee' doesn't exist
我可以使用 FROM 来引用我正在创建的 table 吗?在 MySQL 中是否允许?
没有不使用 primary key
关键字的主键约束。主键具有三个属性:
- 它是独一无二的。
- 不是
NULL
。 - 每个table只有一个。
第三个是你不能保证的。但是,您可以轻松地施加前两个条件:
create table employee (
e_name varchar(20) NOT NULL UNIQUE,
e_surname varchar(20),
depart varchar(20),
salary int
);
没有为此目的使用 check
约束。