Как подготовить данные для вставки "дерева"

Vad72
Дата: 13.08.2012 10:56:05
Есть таблица с полями id, parent_id
id - код элемента дерева
parent_id - код родителя в дереве

На поле parent_id наложен внешний ключ из поля id

Как правильно сделать выборку из таблицы, отсортировав таблицу так, чтобы её можно было потом вставить в другую базу и при вставке не было ошибок с сообщением о том, что не могу вставить, так как нет родителя с соответствующим кодом?
Vad72
Дата: 13.08.2012 10:57:17
CREATE TABLE NETWORKITEM (
    [b]NETWORKITEMID [/b]       INTEGER NOT NULL,
    NETWORKITEMTYPEID    SMALLINT,
    [b]NETWORKITEMPARENTID[/b]  INTEGER,
    NETWORKITEMNAME      VARCHAR(50) NOT NULL COLLATE PXW_CYRL,
    MODIFIED             TIMESTAMP DEFAULT 'NOW',
    USERNAME             VARCHAR(20),
    CONTROL              CHAR(1) COLLATE PXW_CYRL,
    GRNETWORKITEMID      INTEGER,
    NN                   INTEGER
);
Vad72
Дата: 13.08.2012 11:03:54
Если использовать хранимую процедуру, то можно сделать использую рекурсию, а как сделать через SQL-запрос ?
Dimitry Sibiryakov
Дата: 13.08.2012 11:11:21

Vad72
Как правильно сделать выборку из таблицы, отсортировав таблицу так, чтобы её можно было
потом вставить в другую базу и при вставке не было ошибок с сообщением о том, что не могу
вставить, так как нет родителя с соответствующим кодом?

Если гарантировано отсутствие циклов, то
with recursive ... order by level

RTFM 7059126

Posted via ActualForum NNTP Server 1.5