Самостоятельная ссылка, оператор вставки родитель / потомок в одном запросе - PullRequest
0 голосов
/ 19 мая 2011

У меня есть таблица со ссылками на себя, и я хочу добавить родительский и дочерний примеры в один запрос.Есть ли лучший способ сделать это, чем разбить его таким же образом, как у меня ниже?

+---------------------+
|       example       |
+---------+-----------+
|   id    | parent_id |
+---------+-----------+
|    1    |           |
|    2    |     1     |
|    3    |     1     |
|    4    |     1     |
|    5    |           |
|    6    |     5     |
|    7    |     5     |
+---------+-----------+

DECLARE example_id INT;

INSERT INTO `example` (parent_id) VALUE("");

SET example_id = LAST_INSERT_ID();

INSERT INTO `example` (parent_id) VALUE (example_id);

Ответы [ 2 ]

2 голосов
/ 19 мая 2011

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

0 голосов
/ 19 мая 2011

Ваш образ действий выглядит нормально.
В реальном примере вы, вероятно, сделаете insert - select на основе некоторых критериев.

INSERT INTO example SELECT 
  null as id 
  ,e.id as parent_id
  ,10 as field1
  ,....
FROM example e WHERE e.somefield = 10 ORDER BY e.id DESC LIMIT 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...