mysql - 创建引用同一个表的表时使用 FROM 子句
问题描述
我正在使用 MySQL Workbench,并且我正在尝试在不使用 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 来引用我正在创建的表吗?MySQL允许吗?
解决方案
没有不使用primary key
关键字的主键约束。主键具有三个属性:
- 它是独一无二的。
- 它不是
NULL
。 - 每桌只有一个。
这是您无法保证的第三个。但是,您可以轻松地强加前两个条件:
create table employee (
e_name varchar(20) NOT NULL UNIQUE,
e_surname varchar(20),
depart varchar(20),
salary int
);
check
为此目的没有使用约束。
推荐阅读
- mysql - #sql 按类别统计项目总数
- data-structures - C ++ STL中无序映射的关键搜索时间是多少?
- c - 我想在c中反向打印一个字符串数组,但它给了我一个错误
- excel - 如何删除具有 4 个名称的单元格的第三个名称
- c++ - 为什么等价条件是必要的?
- python - Django 结合两个查询集
- python - 带有数字键的mongoengine可以吗?
- elastic-stack - Filebeat 的替代品
- vue.js - Bootstrap Vue:b表上的自定义边框列样式和自定义边框行样式
- python - 使用python在同一个数据库中的不同表上同时写入