|
|
|
| При добавлении записи в поле, нужно получить в столбец записать значение автоинкренемента из первичного ключа.
Я это вижу запросом на добавление, а потом запросом на изменение. Одним запросом никак? | |
|
|
|
|
|
|
|
для: admiral
(15.01.2010 в 13:43)
| | а для чего дублировать значение одного поля в другом? | |
|
|
|
|
|
|
|
для: GeorgeIV
(15.01.2010 в 13:44)
| | Вообщем во второе поле вводится значение (номер) , но заказчик хочет предусмоттреть возможность того чтобы была галочка - Автоматически создать номер. Можно, конечно, самому генерировать номер, а потом сверять нет ли такого номера еще в БД. Поэтому номер думаю самое правильно это брать из первичного ключа. | |
|
|
|
|
|
|
|
для: admiral
(15.01.2010 в 13:48)
| | Если этот вводимый руками номер - действительный первичный ключ, то зачем Вам второе поле?
Помещайте его сразу прямиком в id | |
|
|
|
|
|
|
|
для: Trianon
(15.01.2010 в 13:57)
| | Вы правы. Я не учел что в поле PRIMARY_KEY (auto_increnement) можно вводить значение, отличное от нуля)))) | |
|
|
|
|
|
|
|
для: Trianon
(15.01.2010 в 13:57)
| | Так, а если вдруг пользователь ввел номер по ошибке уже существующие. В этом случае сервер вернет номер ошибки 1062? Следовательно по ней можно и говорить что данный номер уже есть в БД? | |
|
|
|
|
|
|
|
для: admiral
(15.01.2010 в 14:08)
| | Если Вы полагаете, что я наизусть помню все номера ошибок - Вы мне льстите. Грубо.
upd. ошибка 1062 - дублирование значения уникального ключа.
Если у Вас в таблице несколько уникальных ключей - потребуется более точно проверить, какой стал причиной.
Выяснить можно по тексту диагностики, не по номеру. | |
|
|
|
|
|
|
|
для: Trianon
(15.01.2010 в 14:10)
| | Да ниче не льстю. Сами знаете что они здесь.
Просто я у Вас спрашиваю как лучit проверять - по соответсвующему номеру, или запросом - Если записей больше 0,значит есть уже запись. | |
|
|
|
|
|
|
|
для: admiral
(15.01.2010 в 14:20)
| | ой не ту ссылку дал | |
|
|
|
|
|
|
|
для: admiral
(15.01.2010 в 14:21)
| | Это ошибка, которую возвращает сервер, а не клиент. | |
|
|
|
|
|
|
|
для: Trianon
(15.01.2010 в 14:10)
| |
Error: 1062 SQLSTATE: 23000 (ER_DUP_ENTRY)
Message: Duplicate entry '%s' for key %d
|
И как же? | |
|
|
|
|
|
|
|
для: admiral
(15.01.2010 в 14:23)
| |
<?php
include 'dbconfig.php';
$pk = 3;
$v = mysql_query("INSERT INTO goods (id, title) VALUES ($pk, 'lemon')");
if(!$v)
{
$en = mysql_errno();
$em = mysql_error();
$key_no = 1;
$ER_DUP_ENTRY = 1062;
$dup_PK = $en == $ER_DUP_ENTRY &&
sprintf("Duplicate entry '%s' for key %d", intval($pk), $key_no)
== $em;
echo $dup_PK ? "Primary key $pk already exists" : "$en $em";
}
?>
|
Primary key 6 already exists
|
1062 Duplicate entry 'sitro' for key 2
|
| |
|
|
|