|
|
|
| Есть табличка:
id - auto increment поле
В чём проблема: надо при инсерте записать id в idclone...
Возможно ли это сделать, если при записи в запросе id = null ? | |
|
|
|
|
|
|
|
для: spider-x
(29.01.2010 в 04:14)
| | может быть так:
<?
$q = mysql_query("SELECT `id` FROM `table` ORDER BY `id` DESC");
$arr = mysql_fetch_assoc($q);
$text = 'Ваше поле TEXT';
mysql_query("INSERT INTO `table` VALUES ('NULL', '$text', '".intval($arr['id']+1)."');");
?>
|
| |
|
|
|
|
|
|
|
для: spider-x
(29.01.2010 в 04:14)
| | Учитесь правильно Формулировать вопрос.
>Возможно ли это сделать, если при записи в запросе id = null ?
Да. Просто записать null в idclone.
Возможно ли это сделать, если в таблице id является автоинкрементным первичным ключом?
Тем же запросом - нет. Понадобится отдельный запрос UPDATE. | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2010 в 08:59)
| | товарисч просил чтобы уникальные id получаемые при записи дублировались, в idclone
если использовать как сказал Trianon то наверное так:
<?
mysql_query("INSERT INTO `table` VALUES ('NULL', '$text', 'NULL');");
mysql_query("UPDATE `table` SET `idclone`='".mysql_insert_id()."' WHERE `id`='".mysql_insert_id()."' LIMIT 1 ");
?>
|
| |
|
|
|
|
автор: Тень (29.01.2010 в 09:32) |
|
|
для: chexov
(29.01.2010 в 09:21)
| | Значение NULL в апострофы не берётся. Только тсс, никому! | |
|
|
|
|
|
|
|
для: Тень
(29.01.2010 в 09:32)
| | спасибо тень, я никому ))))))))))))))))) NULL, '$text', '0' | |
|
|
|
|
|
|
|
для: chexov
(29.01.2010 в 09:21)
| | Это я знаю... проблема в том что если будут одновременные записи придётся блочить мускул... ведь на сколько я понимаю mysql_insert_id() возвращает id последней добавленной записи...
и может получиться такое:
мой insert
чужой insert
мой update с чужим id
|
Или я не прав? | |
|
|
|
|
|
|
|
для: spider-x
(29.01.2010 в 11:09)
| | нет не прав будет твой апдейт с твоим айди | |
|
|
|
|
|
|
|
для: Valick
(29.01.2010 в 11:20)
| | Хм... спасибо что открыли мне глаза))) всегда считал что она берёт просто последний добавленный id'шник :) | |
|
|
|
|
|
|
|
для: spider-x
(29.01.2010 в 11:37)
| | а тут ничего считать не надо, нужно просто читать мануал ;)
там, кстати сказать, много всякого интересного написано, на прошлых новогодних каникулах я читал книжку по MySQL тупо открывая на любой странице и прочитывая листов 5-6 и натыкался на вещи которые раньше упускал когда искал определенную информацию. | |
|
|
|
|
|
|
|
для: Valick
(29.01.2010 в 11:48)
| | периодически читаю когда необходимо... просто у меня в мозгу почему-то отложилось именно такое поведение функции... и потому обращаться к мануалу не стал) | |
|
|
|
|
|
|
|
для: spider-x
(29.01.2010 в 11:09)
| | Эту функцию специально реализовывали, чтоб такого поведения избежать.
Но надо понимать, что
мой insert
чужой insert
мой update с моим id
|
но
мой insert1
мой insert2
мой update с id из insert2
|
| |
|
|
|
|
|
|
|
для: Trianon
(29.01.2010 в 13:19)
| | Ну это я знаю :) | |
|
|
|
|
|
|
|
для: chexov
(29.01.2010 в 09:21)
| | нет. Не так.
UPDATE tbl SET idclone = id WHERE id IS NULL | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2010 в 13:17)
| | и не так :) а вот так:
UPDATE tbl SET idclone = id WHERE idclone IS NULL
|
Но это если не нужны некоторые записи с NULL в idclone | |
|
|
|
|
|
|
|
для: spider-x
(29.01.2010 в 14:59)
| | ну да. | |
|
|
|