22 мая 2012 г., 15:58 от Samy Dindanekik

Почему MySQL позволяет обновить столбец NOT NULL до NULL?

Я бегуMySql вubuntu 10.10, Я создал таблицу под названием'employee' имея 3 имени поляempno, name and salary, Вставлено несколько объектов. В середине процесса я хочу изменить атрибут зарплаты как'NOT NULL', Я изменяю таблицу как

ALTER TABLE employee MODIFY salary int(10) NOT NULL;

Запрос выполнен. Я хотел проверить с помощью команды,

UPDATE employee SET salary=NULL;

Query OK, 15 rows affected, 15 warnings (0.06 sec)
Rows matched: 15  Changed: 15  Warnings: 15

также дал предупреждения" (Code 1048): Column 'salary' cannot be null "(Повторяется для каждого ряда)

Но когда я увидел свой стол, все зарплаты были нули ('0').

Same queries result in error instead of warning in WINDOWS XP's MySql

Я проверил в обоих двигателях INNODB и MYISAM, но тот же результат. Пожалуйста, помогите мне узнать, что произошло рядом с обработкой.

Ответы на вопрос (0)

22 мая 2012 г., 15:36 от Dunhamzzz

NOT NULL, (который не допускает значения NULL), и теперь он не позволит установить его наNULL, что было бы ожидаемым поведением.

Причина, по которой у вас 0 в вашей БД, заключается в том, что 0 будет результатом приведения NULL к int.

22 мая 2012 г., 15:51 от Marcus AdamsQuassnoi

SQL_MODE установить строгую на вас установку Ubuntu.

вопрос

SET SQL_MODE='STRICT_ALL_TABLES'

или добавить

SQL_MODE='STRICT_ALL_TABLES'

под[mysqld] на вашmy.cnf наUbuntu.

ВАШ ОТВЕТ НА ВОПРОС