При ограниченном тестировании может показаться, что если внешние ключи определены на уровне столбца, то столбец id является более высоким значением для ранее определенных внешних ключей.
Вы можете использовать прагмы, которые возвращают результаты в инструкциях SELECT, таких как и сортировать в соответствии с одним из столбцов (идентификатор использовался, если использовалось подходящее соглашение об именах столбцов, которое можно отсортировать в соответствии с из колонка (отметив, что ее необходимо заключить))
SELECT * FROM pragma_foreign_key_list('mytable') ORDER BY id ASC;
Например, рассмотрим следующее: -
DROP TABLE IF EXISTS mytable;
CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY,
_otherd_building_id_reference INTEGER REFERENCES _building(_id),
_building_id_reference INTEGER REFERENCES _building(_id),
_room_id_reference INTEGER REFERENCES _room(_id),
_campus_id_reference INTEGER REFERENCES _campus(_id),
_othera_campus_reference INTEGER REFERENCES _campus(_id),
_otherz_room_id_reference INTEGER REFERENCES _room(_id),
_otherc_building_id_reference INTEGER REFERENCES _building(_id)
);
SELECT * FROM pragma_foreign_key_list('mytable') ORDER BY id DESC;
- Обратите внимание, что изначально столбцы без префикса, такие как * прочее? были добавлены, другие , c и z были добавлены в конце, а затем, наконец, _otherd_building_id_reference был добавлен.
Результат при выполнении вышеуказанного постоянно: -
![enter image description here](https://i.stack.imgur.com/E2g83.png)