Как добавить не нулевое ограничение к существующему столбцу в MySQL
у меня есть имя таблицы под названием "Человек" со следующими названиями столбцов
P_Id(int),
LastName(varchar),
FirstName (varchar).
Я забыл дать NOT NULL
ограничения P_Id
.
теперь я попытался со следующим запросом добавить NOT NULL
ограничение на существующий столбец называется P_Id
,
1. ALTER TABLE Person MODIFY (P_Id NOT NULL);
2. ALTER TABLE Person ADD CONSTRAINT NOT NULL NOT NULL (P_Id);
Я получаю синтаксическую ошибку....
2 ответа:
просто использовать
ALTER TABLE... MODIFY...
запрос и добавитьNOT NULL
в существующее определение столбца. Например:ALTER TABLE Person MODIFY P_Id INT(11) NOT NULL;
слово предостережения: вам нужно указать полное определение столбца при использовании
MODIFY
запрос. Если ваш столбец имеет, например,DEFAULT
значение или комментарий столбца, вы должны указать его вMODIFY
заявление вместе с типом данных иNOT NULL
, или он будет потерян. Самая безопасная практика, чтобы защититься от таких неудачи заключается в том, чтобы скопировать определение столбца из выходных данных aSHOW CREATE TABLE YourTable
запрос, измените его, чтобы включитьNOT NULL
ограничение, и вставьте его в свойALTER TABLE... MODIFY...
запрос.
попробуйте это, вы будете знать разницу между изменением и изменить,
ALTER TABLE table_name CHANGE curr_column_name new_column_name new_column_datatype [constrints]
ALTER TABLE table_name MODIFY column_name new_column_datatype [constraints]
- выполнить
MODIFY
операция для изменения, но обратный не представляется возможным.- вы можете изменить имя и тип данных конкретного столбца, используя
CHANGE
.- вы можете изменить конкретный тип данных столбца с помощью
MODIFY
. Вы не можете изменить имя столбца с помощью этой инструкции.Надеюсь, Я объяснил хорошо в деталях.