SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#26 25.02.2013 13:01:53

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Можно ли записать в базу байт

Скорректировал свой ответ. Значения по умолчанию не будет. В режиме @@sql_mode='TRADITIONAL'; вместо Warning будет генерироваться ошибка.

Неактивен

 

#27 25.02.2013 13:05:21

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Можно ли записать в базу байт

rgbeast написал:

Если NOT NULL, то значения по умолчанию не будет, но при вставке MySQL добавит 0 для целых и пустую строку для символьных переменных, при этом сгенерировав Warning.

А если хочется, чтобы MySQL позволял вставлять лишь те данные, которые явно указаны, то можно указать sql-mode strict_all_tables.

Код:

mysql> SET @@SESSION.sql_mode='strict_all_tables';
Query OK, 0 rows affected (0.00 sec)

mysql> create table t_6483(val varchar(255) NOT NULL);
Query OK, 0 rows affected (0.54 sec)

mysql> insert into t_6483 values();
ERROR 1364 (HY000): Field 'val' doesn't have a default value

В ином случае  - да, проходит вставка пустой строки (не null, а именно пустой строки), но генерируется warning

Код:

mysql> SET @@SESSION.sql_mode='';
Query OK, 0 rows affected (0.00 sec)

mysql> DROP table t_6483;
Query OK, 0 rows affected (0.00 sec)

mysql> create table t_6483(val varchar(255) NOT NULL);
Query OK, 0 rows affected (0.43 sec)

mysql> insert into t_6483 values();
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> show warnings;
+---------+------+------------------------------------------+
| Level   | Code | Message                                  |
+---------+------+------------------------------------------+
| Warning | 1364 | Field 'val' doesn't have a default value |
+---------+------+------------------------------------------+
1 row in set (0.00 sec)

mysql> select * from t_6483;
+-----+
| val |
+-----+
|     |
+-----+
1 row in set (0.00 sec)

Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#28 25.02.2013 15:35:53

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Можно ли записать в базу байт

Большое все спасибо за ответ.


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson