Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / MySQL Новый топик    Ответить
 Не понимаю почему не работает код. Помогите разобраться  [new]
Scheff
Member

Откуда:
Сообщений: 1
CREATE DATABASE EXAM;
USE EXAM;

CREATE TABLE QUESTIONS (
ID int(11) unsigned AUTO_INCREMENT NOT NULL,
Question_Name varchar(255),
PRIMARY KEY(ID)
)ENGINE=InnoDB;

CREATE TABLE SUBJECT (
ID int(11) unsigned AUTO_INCREMENT NOT NULL,
Subject_Name varchar(255),
PRIMARY KEY(ID)
)ENGINE=InnoDB;


CREATE TABLE CHAIRMAN (
ID int(11) unsigned AUTO_INCREMENT NOT NULL,
FirstName varchar(255),
MiddleName varchar(255),
LastName varchar(255),
PRIMARY KEY(ID)
)ENGINE=InnoDB;


CREATE TABLE PARTICIPANT (
ID int(11) unsigned AUTO_INCREMENT NOT NULL,
FirstName varchar(255),
MiddleName varchar(255),
LastName varchar(255),
PRIMARY KEY(ID)
)ENGINE=InnoDB;

CREATE TABLE PROTOCOLS (
ID int(11) unsigned AUTO_INCREMENT NOT NULL,
Ex_year year,
ExStart time(6),
ExEnd time(6),
id_chairman int(11) unsigned NOT NULL,
id_subject int(11) unsigned NOT NULL,
id_participant int(11) unsigned NOT NULL,
id_question int(11) unsigned NOT NULL,
Mark int(1),
PRIMARY KEY (ID),
FOREIGN KEY id_chairman REFERENCES chairman (ID),
FOREIGN KEY id_subject REFERENCES subject (ID),
FOREIGN KEY id_participant REFERENCES participant (ID),
FOREIGN KEY id_question REFERENCES questions (ID)
)

По этому коду создает вообще все таблицы, кроме PROTOCOLS. Конкретно, PhpMyAdmin выделяет ошибкой вторичные ключи (Foreign Key) с ошибкой : #1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MariaDB на предмет корректного синтаксиса около 'REFERENCES chairman (ID),
FOREIGN KEY id_subject REFERENCES subject (ID),
FORE' на строке 12

Вроде правильно всё, не могу понять
30 май 21, 14:35    [22328973]     Ответить | Цитировать Сообщить модератору
 Re: Не понимаю почему не работает код. Помогите разобраться  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3805
код рабочий 100%

похоже PhpMyAdmin этого не знает
Пробуйте добавить скобки и т.д.
FOREIGN KEY  (id_chairman) REFERENCES chairman (ID),
30 май 21, 15:32    [22328979]     Ответить | Цитировать Сообщить модератору
 Re: Не понимаю почему не работает код. Помогите разобраться  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21200
Вроде бы понятно, даже по-русски, написано: "Изучите документацию по используемой версии MariaDB на предмет корректного синтаксиса". Вот и изучайте: CREATE TABLE - Index Definitions.
30 май 21, 16:44    [22328991]     Ответить | Цитировать Сообщить модератору
 Re: Не понимаю почему не работает код. Помогите разобраться  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3805
в фиддле весь копипаст работает на МарииДБ10

Сообщение было отредактировано: 30 май 21, 17:03
30 май 21, 17:11    [22328995]     Ответить | Цитировать Сообщить модератору
 Re: Не понимаю почему не работает код. Помогите разобраться  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21200
Alex_Ustinov
в фиддле весь копипаст работает на МарииДБ10

Не могёт такого быть. Скорее всего Вы говорите о dbfiddle.uk, где сообщение об ошибке выводится только если сбоит первый запрос. Сравните количество запросов слева и количество галок справа.
30 май 21, 18:51    [22329010]     Ответить | Цитировать Сообщить модератору
 Re: Не понимаю почему не работает код. Помогите разобраться  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21200
Alex_Ustinov
в фиддле весь копипаст работает на МарииДБ10

Не могёт такого быть. Скорее всего Вы говорите о dbfiddle.uk, где сообщение об ошибке выводится только если сбоит первый запрос. Сравните количество запросов слева и количество галок справа.
30 май 21, 18:51    [22329012]     Ответить | Цитировать Сообщить модератору
 Re: Не понимаю почему не работает код. Помогите разобраться  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3805
Akina,

да, 4+ 1-
проверял 1 форейжн, наверное автоматом подправил сразу

Scheff,

форейжн кей в скобках, еще имя ссылочной таблицы в одном регистре с определением
FOREIGN KEY  (id_chairman) REFERENCES CHAIRMAN  (ID),


Сообщение было отредактировано: 30 май 21, 21:06
30 май 21, 21:14    [22329026]     Ответить | Цитировать Сообщить модератору
 Re: Не понимаю почему не работает код. Помогите разобраться  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21200
Alex_Ustinov
еще имя ссылочной таблицы в одном регистре с определением
Ну это уже следствие SQL Mode. Можно поменять, чтобы была полная регистронезависимость.
30 май 21, 23:23    [22329052]     Ответить | Цитировать Сообщить модератору
 Re: Не понимаю почему не работает код. Помогите разобраться  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3805
есть и lower_case_.....
дабы не плодить разнородность - лучше разу поправить
31 май 21, 09:38    [22329138]     Ответить | Цитировать Сообщить модератору
Все форумы / MySQL Ответить