У меня есть TABLEA с следующим выводом из команды убывания TABLEA:падение по умолчанию ограничение
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | | |
| city | varchar(50) | YES | | NULL | |
| state | char(2) | YES | | NULL | |
| country | varchar(30) | YES | | NULL | |
| notes | longtext | YES | | NULL | |
| type | varchar(50) | NO | | NULL | |
+---------+-------------+------+-----+---------+----------------+
Теперь есть 3 колонков с NOT NULL ограничений:
- ID
- именем
- типа
Для столбцов id и типа мне нужно удалить ограничение по умолчанию. В принципе я хочу По умолчанию: Нет. Я не хочу использовать обходные пути, например. значение по умолчанию для 'varchar.
Разница между NULL, NONE, и «» становится более ясно из этой дискуссии Default-values-for-varchar-and-int-mysql-data-types
Я попытался с помощью команды:
alter table tableA alter column type drop default;
Запрос работает нормально, но ни одна строка не затрагиваются. И никакое изменение значения по умолчанию не отображается, когда я запускаю команду описания.
Если я установил значение по умолчанию для «Я столкнулся с другой проблемой - база данных позволяет вводить пустую строку в db. Для меня это эквивалентно введению NULL для значения столбца, и я не хочу этого допускать.
Мне нужно некоторое руководство по обработке значений по умолчанию в этой ситуации, когда я не могу разрешать пустые строки как данные в db. Я хочу упомянуть, что я планирую включить проверки в код, чтобы проверить, являются ли входящие данные пустой строкой или NULL. Но на всякий случай, если проверка не работает и т. Д., Я хочу убедиться, что БД может отказаться от добавления таких данных.
Любая помощь действительно оценена.
http://stackoverflow.com/questions/5807231/mysql-check-constraint-alternative – biziclop