|
|
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
Всем привет! Встала задача, решение ищу уже второй день, может поможет кто, итак... INSERT INTO table (name, id) VALUES ('Имя', 3) как мне построить запрос так, что бы в поле id попадало максимальное значение из столбца, и ещё прибавлялось +1. По логике вещей, должно быть что то типа INSERT INTO table (name, id) VALUES ('Имя', (SELECT MAX(id) FROM table) ) Но я где то явно косячу, как правильно ? и как прибавить ещё +1 к максимальному значению столбца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:36:05 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
gorgeous92, auto_increment? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:38:26 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
tanglir, АвтоИнкремент уже присутствует в этой таблице. Это поля, является полем сортировки, и в него нужно вставлять значение, на +1 больше, из максимального текущего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:42:53 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
gorgeous92и в него нужно вставлять значение, на +1 больше, из максимального текущего.именно этим и занимается автоинкремент :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:44:43 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
tanglir, Может я чуть не договорил, Но, в этой таблице записи, относятся ко многим категориям, т.е. получается что будет происходить выборка по категории, а потом всё сортироваться, соответственно этот столбец не является уникальным и автоинкрементарным. И как это сделать подзапросом я уже голову сломал ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:48:51 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
gorgeous92, дубовый способ: Код: sql 1. и сразу морально готовьтесь к появлению дублей при сортировке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:54:08 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
gorgeous92Но, в этой таблице записи, относятся ко многим категориямТак показывайте структуру таблицы полностью, желательно в виде DDL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:55:02 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
tanglir, Уже так пробовал и при выполнении этого запроса INSERT INTO cat (name_c, sort_c) VALUES ('Имя', (SELECT MAX(sort_c)+1 FROM cat where id_razd_c = 3) ) имеем ошибку #1093 - You can't specify target table 'cat' for update in FROM clause id_c - "уникальный идентификатор" name_c - "название записи" sort_c- "сортировка записей" id_razd_c - "id раздела, к которому принадлежит запись" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 14:04:16 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
tanglirgorgeous92, дубовый способ: Код: sql 1. и сразу морально готовьтесь к появлению дублей при сортировке А почему Дубовый та? Что в нём не верно ? Вот нашел описание схожей проблемы только при UPDATE Походу принцип возникновения ошибки такой же. Не поможете составить запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 14:18:46 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
gorgeous92, Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 14:25:20 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
MasterZivgorgeous92, Код: sql 1. При выполнении Код: sql 1. та же ошибка #1093 - You can't specify target table 'cat' for update in FROM clause ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 14:29:43 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
ага, есть такое можно так обойти: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 05:41:25 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
gorgeous92По логике вещей, должно быть что то типа INSERT INTO table (name, id) VALUES ('Имя', (SELECT MAX(id) FROM table) ) Но я где то явно косячу, как правильно ? и как прибавить ещё +1 к максимальному значению столбца По логике вещей должно быть что-то типа Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 07:37:36 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
deblogger, валуес - отдельная клауза как, по-вашему, сервер должен догадаться, что ид в валуес - это ид из той таблицы, куда он должен вставлять записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 07:48:20 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
tanglir, Не в таблице дело. Имя таблицы добавляется к имени поля, но по голым идентификаторам группировка не пашет. То есть values не нужны вообще. Применяется типовой insert into ... select. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 11:03:40 |
|
||
|
Вложенный подзапрос INSERT с SELECT в одном из значений
|
|||
|---|---|---|---|
|
#18+
debloggerТо есть values не нужны вообще. Применяется типовой insert into ... select.который я и написал в предыдущем посте :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 11:19:54 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38538980&tid=1835328]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 320ms |

| 0 / 0 |
