Я использую сценарий php для создания таблиц в базе данных. Таблицы с 1 по 3 работают отлично, но я получаю эту ошибку для остальных:
Ошибка добавления таблицы 4: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с «позиция (регион), КЛЮЧ ВНЕШНИЙ (болезнь) ЛИТЕРАТУРА болезнь (name_ill))» в строке 9 Ошибка добавления таблицы 5: у вас есть ошибка в ваш SQL синтаксис; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с «позиция (регион), КЛЮЧЕВОЙ КЛЮЧ (болезнь) ЛИТЕРАТУРА болезнь (name_ill))» в строке 9 Ошибка добавления таблицы 6: у вас есть ошибка в ваш SQL синтаксис; обратитесь к руководству, соответствующему вашей MySQL версии сервера, чтобы найти правильный синтаксис для использования рядом со значением «позиция (регион), КЛЮЧЕВОЙ КЛЮЧ (болезнь) ЛИТЕРАТУРА болезнь (name_ill))» в строке 10 Ошибка добавления таблицы 7: у вас есть ошибка в ваш SQL синтаксис; обратитесь к руководству, соответствующему вашей MySQL версии сервера, для правильного синтаксиса для использования рядом с 'позиция (регион), ЗАРУБЕЖНЫЙ КЛЮЧ (болезнь) ССЫЛКИ болезнь (name_ill))' в строке 12
I прикрепите код для таблиц, так как я не могу найти ошибку SQL. Вроде бы проблема с синтаксисом внешнего ключа, но выглядит он отлично. Я попытался добавить и удалить скобки, изменить порядок внешних ключей и добавить точку с запятой после оператора, но ничего не получалось.
$table1 = "CREATE TABLE user (
id INT NOT NULL AUTO_INCREMENT,
email VARCHAR(255) NOT NULL UNIQUE,
username VARCHAR(255) NOT NULL UNIQUE,
passwd VARCHAR(255) NOT NULL,
age DATE DEFAULT NULL,
moderator BOOLEAN DEFAULT 0,
PRIMARY KEY (id)
)";
$table2 = "CREATE TABLE position (
region VARCHAR(255) NOT NULL UNIQUE,
x_coordinate FLOAT(24) NOT NULL,
y_coordinate FLOAT(24) NOT NULL,
PRIMARY KEY (region)
)";
$table3 = "CREATE TABLE illness (
name_ill VARCHAR(255) NOT NULL,
PRIMARY KEY (name_ill)
)";
$table4 = "CREATE TABLE user_vaccine (
id INT NOT NULL AUTO_INCREMENT,
time_vacc DATE NOT NULL,
illness VARCHAR(255) NOT NULL,
region VARCHAR(255) NOT NULL,
usr_id INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (usr_id) REFERENCES user(id),
FOREIGN KEY (region) REFERENCES position(region),
FOREIGN KEY (illness) REFERENCES illness(name_ill)
)";
$table5 = "CREATE TABLE user_illness (
id INT NOT NULL AUTO_INCREMENT,
time_ill DATE NOT NULL,
illness VARCHAR(255) NOT NULL,
region VARCHAR(255) NOT NULL,
usr_id INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (usr_id) REFERENCES user(id),
FOREIGN KEY (region) REFERENCES position(region),
FOREIGN KEY (illness) REFERENCES illness(name_ill)
)";
$table6 = "CREATE TABLE official_illness (
id INT NOT NULL AUTO_INCREMENT,
time_ill DATE NOT NULL,
illness VARCHAR(255) NOT NULL,
web_url VARCHAR(255) NOT NULL,
region VARCHAR(255) NOT NULL,
usr_id INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (usr_id) REFERENCES user(id),
FOREIGN KEY (region) REFERENCES position(region),
FOREIGN KEY (illness) REFERENCES illness(name_ill)
)";
$table7 = "CREATE TABLE official_vaccine (
id INT NOT NULL AUTO_INCREMENT,
year_vacc SMALLINT NOT NULL,
perc_vacc FLOAT(4,2) NOT NULL,
region VARCHAR(255) NOT NULL,
age_group INT,
report_organisation VARCHAR(255),
usr_id INT NOT NULL,
illness VARCHAR(255) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (usr_id) REFERENCES user(id),
FOREIGN KEY (region) REFERENCES position(region),
FOREIGN KEY (illness) REFERENCES illness(name_ill)
)";