Loading...
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 5 Точки

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

1
Rumyana1984 avatar Rumyana1984 13 Точки

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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.