SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 24.08.2009 21:15:46

factorng
Участник
Зарегистрирован: 24.08.2009
Сообщений: 3

Значения по умолчанию

Доброго времени суток!
У меня вопрос:
я создаю таблицу
create table data_table (   `id` int not null, `numbers` enum('first','second') default 'first', primary key ( `id`));

для поля numbers я устанавливаю значение по умолчанию и по идее, если я сделаю так
insert into data_table values (1);

то в поле numbers должно принять значение по умолчанию, но так не происходит (mysql ругается что количество полей не соответствует количеству вводимых данных) и после этого мне становится совсем не понятно зачем нужно значение по умолчанию.
Объясните, пожалуйста, новичкуsmile

Неактивен

 

#2 24.08.2009 21:34:55

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Значения по умолчанию

Представьте себе вот такую табличку:
CREATE TABLE z (a INT NOT NULL DEFAULT 0, b INT NOT NULL DEFAULT 1);
Как он должен реагировать на INSERT INTO z VALUES (1)? smile

Именно поэтому, такой синтаксис запрещен, и нужно писать полностью.
В Вашем случае — INSERT INTO data_table VALUES (1, NULL);

Неактивен

 

#3 24.08.2009 23:16:02

factorng
Участник
Зарегистрирован: 24.08.2009
Сообщений: 3

Re: Значения по умолчанию

если я так пишу он вот что выдает

mysql> insert into data_table values (1, NULL);
Query OK, 1 rows affected (0.00 sec)

mysql> select * from data_table
    -> ;
+----+--------+
| id | numbers |
+----+--------+
| 1  | NULL   |
+----+--------+
1 rows in set (0.01 sec)

почему в строке NULL, если должен быть first?

Отредактированно factorng (24.08.2009 23:18:48)

Неактивен

 

#4 25.08.2009 00:12:49

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Значения по умолчанию

Хм, раньше, вроде, NULL обрабатывался в дефолтное значение... сейчас, кажется,
поведение более правильное на колонке, допускающей NULL.

Тогда попробуйте явно задать INSERT INTO data_table VALUES (1,DEFAULT);

Неактивен

 

#5 25.08.2009 12:21:07

factorng
Участник
Зарегистрирован: 24.08.2009
Сообщений: 3

Re: Значения по умолчанию

Спасибо огромное, так действительно заработало!

Неактивен

 

Board footer

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