|
|
|
| Подскажите, что не так? Запись добавляется только после перечисления полей таблицы:
mysql> describe vvv9;
+--------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+----------------+
| id_en | int(3) | NO | PRI | NULL | auto_increment |
| art | char(15) | NO | | | |
| model | char(25) | NO | | | |
| v | char(5) | YES | | NULL | |
| t | char(6) | YES | | NULL | |
| n | char(5) | YES | | NULL | |
| h | char(5) | YES | | NULL | |
| w | char(5) | YES | | NULL | |
| z | char(5) | YES | | NULL | |
| em | char(2) | YES | | NULL | |
| zk | char(2) | YES | | NULL | |
| tr | char(2) | YES | | NULL | |
| si | char(2) | YES | | NULL | |
| za | char(2) | YES | | NULL | |
| prise | decimal(11,2) | YES | | NULL | |
| id_ob | int(3) | NO | | 19 | |
| id_ser | int(2) | NO | | 1 | |
+--------+---------------+------+-----+---------+----------------+
17 rows in set (0.00 sec)
mysql> insert into vvv9 values(0,"efefef","eiieiei","","32","53","ee","er","ew","","","","","","8989");
ERROR 1136 (21S01): Column count doesn't match value count at row 1
mysql>
mysql> insert into vvv9 (id_en,art,model,v,t,n,h,w,z,em,zk,tr,si,za,prise) values(0,"efefef","eiieiei","","32","53","ee"
-> ,"er","ew","","","","","","8989");
Query OK, 1 row affected (0.00 sec)
|
| |
|
|
|
|
|
|
|
для: Ret
(11.10.2006 в 01:51)
| | Если вы хотите пропустить какие-то значения, то нужно явно указать, какие значения вы приводите, т.е. запрос должен иметь следующий формат
insert into vvv9 (art, model) values("efefef", "eiieiei");
|
| |
|
|
|
|
|
|
|
для: Ret
(11.10.2006 в 01:51)
| | В таблице 17 полей.
Вы перечисляете 15 значений.
Сервер отвечает: число полей не совпадает с числом значений в строке 1.
Что Вас удивило? | |
|
|
|
|
|
|
|
для: Trianon
(11.10.2006 в 09:28)
| | Никаких значений мне пропускать не нужно, т.к. насколько я понял из "Самоучитель MySQL 5"
(авторы Кузнецов М., Симдянов И.), поля которые имеют значения по умолчанию (DEFAULT)
необязательно указывать в списке VALUES, поэтому я и указал имя таблицы и список значений,
кроме DEFAULTных.
Сейчас почитал "Самоучитель...", и кажется получается, что при использовании значений по
умолчанию не обязательно указывать имена этих полей, но имена других полей надо указать.
И если я не хочу перечислять имена полей при вставке, то в списке VALUES надо перечислить
все значения.
Сейчас проверю. | |
|
|
|
|
|
|
|
для: Ret
(11.10.2006 в 22:31)
| | Нет, поля, которые имеют атрибут DEFAULT получт указываемое им значение, если вы это поле пропускаете. Если вы используете формат INSERT tbl VALUES (...), то вместо ... следует указывать значения для всех столбцов таблицы tbl. | |
|
|
|
|
|
|
|
для: Ret
(11.10.2006 в 22:31)
| | Вам лучше использовать "INSERT INTO `table` SET `var` = 1, `var2` = 123 ..." | |
|
|
|
|
|
|
|
для: Unkind™
(11.10.2006 в 22:46)
| | Спаситбо всем! Всё получилось.
mysql> describe jkl3;
+--------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+----------------+
| id_en | int(11) | NO | PRI | NULL | auto_increment |
| art | char(15) | NO | | | |
| model | char(25) | NO | | | |
| v | char(5) | YES | | NULL | |
| t | char(6) | YES | | NULL | |
| n | char(5) | YES | | NULL | |
| h | char(5) | YES | | NULL | |
| w | char(5) | YES | | NULL | |
| z | char(5) | YES | | NULL | |
| em | char(2) | YES | | NULL | |
| zk | char(2) | YES | | NULL | |
| tr | char(2) | YES | | NULL | |
| si | char(2) | YES | | NULL | |
| za | char(2) | YES | | NULL | |
| prise | decimal(11,2) | YES | | NULL | |
| id_ob | int(3) | NO | | 19 | |
| id_ser | int(2) | NO | | 1 | |
+--------+---------------+------+-----+---------+----------------+
17 rows in set (0.02 sec)
mysql> insert into vvv9 values(0,"rrrere","eeeerrr","","53","89","ii","kk","cc","","","","","","5454",19,1);
Query OK, 1 row affected (0.00 sec)
|
| |
|
|
|
|