Я пытаюсь написать сценарий, который создает базу данных с помощью MySQL Workbench. Мне нужно создать таблицу с атрибутом под названием «город». Этим атрибутом может быть только Сидней, Брисбен или Мельбурн, и он должен иметь ограничение, гарантирующее, что он не имеет другого значения при вставке данных. Как мне это сделать?
CREATE TABLE Warehouse (
warehouseNumber int NOT NULL,
warehouseName varchar(255),
streetNumber varchar(255),
streetName varchar(255),
city varchar(255),
suburb varchar(255),
state varchar(255),
postcode varchar(255),
warehouseHeadName varchar(255),
numberEmployees int,
PRIMARY KEY (warehouseNumber)
);
Стол называется Склад
Эм, но там нет столбца с названием города
Извините, это называется "город", сценарий создания таблицы, который я опубликовал, должен иметь ограничение
Отлично, теперь у вас есть ответ (с учетом ограничений, описанных в руководстве)
И вообще, что не так с Ньюкаслом?
Нет, на самом деле я не получил никакого ответа на свой вопрос, как мне создать ограничение проверки, чтобы убедиться, что данные для «города» - это Сидней, Брисбен или Мельбурн, а не какой-либо другой город? В Ньюкасле нет ничего плохого, пользователь должен быть ограничен выбором трех городов.
Требуется ли теперь ПРОВЕРИТЬ ОГРАНИЧЕНИЕ? Если да, создайте отдельную таблицу городов только с этими тремя значениями.
Ограничение CHECK не работает в MySQL. Вы можете использовать тип данных Enum. Или создайте отдельную таблицу Cities (id, City) и сделайте City как FK между двумя таблицами.
Спасибо, Мадхур, мне нужно использовать тип данных Enum вместо varchar.
Гм, вот что я сказал.
Я только что понял, что вы упомянули это в своем первом комментарии, моя ошибка, спасибо за помощь @ Strawberry
ENUM может удовлетворить это требование. Как называется стол?