4. Self-Referencing от упражнение Table Relations - Софтуерен университет

4. Self-Referencing от упражнение Table Relations - Софтуерен университет

+ Нов въпрос
Teodor_Stoyanov avatar Teodor_Stoyanov 0 Точки

4. Self-Referencing от упражнение Table Relations

Имам проблем с тази задачка в judgle. Локално при мен всичко си минава, създава си се таблицата без проблеми, но в judgе дава compile time error. Това ми е и заявката. 

 

CREATE TABLE teachers(
	teacher_id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(30),
	manager_id INT,
	CONSTRAINT fk_teacher_id
	FOREIGN KEY (manager_id)
	REFERENCES teachers(teacher_id)
);
	
INSERT INTO teachers(teacher_id,name,manager_id)
VALUES
(101,'John',NULL),
(102,'Maya',106),
(103,'Silvia',106),
(104,'Ted',105),
(105,'Mark',101),
(106,'Greta',101);

 

Тагове:
0
Databases Basics - MySQL
juliast avatar juliast 4 Точки

Когато вкарваш данните по този начин, реферираш към учител, който все още не е въведен, тъй като вече си задал FK, т.е. когато въведеш Мая, с мениджър 106, все още няма запис за ID 106 в таблицата. Пробвай да сложиш FK Constraint след като си напълнил таблицата.

0
Rumyana1984 avatar Rumyana1984 12 Точки

CREATE TABLE IF NOT EXISTS teachers(

teacher_id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(15),

manager_id INT

);

 

INSERT INTO teachers(teacher_id,name,manager_id)

VALUES(101,'John',NULL),(102,'Maya',106),(103,'Silvia',106),

(104,'Ted',105),(105,'Mark',101),(106,'Greta',101);

 

ALTER TABLE teachers

ADD CONSTRAINT fk_manager_id FOREIGN KEY(manager_id)

REFERENCES teachers(teacher_id)

ON DELETE NO ACTION;

SET FOREIGN_KEY_CHECKS=0;

0
spzvtbg avatar spzvtbg 581 Точки

https://github.com/spzvtbg/Databases-Basics---MS-SQL-Server---2017/blob/master/05.%20Table%20Relations/04.%20Self-Referencing/Self-Referencing.sql

 

При мен работи може би проблема е че нямаш IDENTITY на PRIMARY KEY - а

0
Bullsized avatar Bullsized 153 Точки

моето решение е почти идентично на твоето, просто не добавям CONSTRAINT за променливите, а директно си ги пиша на същия ред - хвърли един поглед.

освен това променливите са ти грешни, трябва да са TeacherID, Name и ManagerID - провери дали от това не е проблема

0