我是SQL的新手,我试图创建一个表,然后改变表以使用ALTER添加一些约束,最后插入2个员工,一个管理另一个。 我在pgAdmin4中出现此错误“ERROR:语法错误在”INSERT“或附近 如果有人能让我知道我的代码中任何其他明显的问题,那将是很好的
这是表格:
CREATE TABLE employee (
emp_id integer NOT NULL,
first_name varchar(15) NOT NULL,
last_name varchar(15) NOT NULL,
manager integer
);
改变了:
ALTER TABLE employee ADD CONSTRAINT unique_emp_id UNIQUE (emp_id);
ALTER TABLE employee ADD FOREIGN KEY (manager) REFERENCES emp_id;
ALTER TABLE employee ADD CHECK (emp_id != manager)
INSERT INTO employee VALUES
(1, 'Tom', 'Jones', 2);
INSERT INTO employee (emp_id, first_name, last_name)
VALUES (2, 'Dave', 'Smith');
答案 0 :(得分:1)
外键引用需要提及表,即使是自引用:
ALTER TABLE employee ADD FOREIGN KEY (manager) REFERENCES employee(emp_id);
此外,第一个insert
不起作用,因为该表为空,因此外键失败。 insert
的顺序错误。您还应列出insert
的所有列,即使您认为自己知道这些列。
Here是一个SQL小提琴,其余的语句都有效。