использование имени столбца в качестве внешнего ключа в sqlite - PullRequest
0 голосов
/ 10 мая 2011

Есть ли способ ссылаться на "имена столбцов данной таблицы" как внешний ключ в sqlite?

Я проверял:

create table "test"(
    test TEXT
);
create table "othertest"(
    othertest TEXT references PRAGMA table_info("test")[1]
);

Но, как и ожидалось, это не такработа ... (ошибка Error: near "table_info": syntax error, но даже если table_info был принят, я сомневаюсь, что часть [1] будет действительной)

1 Ответ

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

Как правило, системы управления базами данных SQL не допускают выражения в DDL.Системы, которые поддерживают представления information_schema, не позволят вам использовать скалярный подзапрос, чтобы вернуть цель для ссылки на внешний ключ.Это синтаксическая ошибка во всех базах SQL, которые я использую изо дня в день.

create table test (
    article_id integer primary key 
        references articles (select column_name 
                             from information_schema.columns
                             where table_name = 'articles'
                             and is_nullable = 'NO')
);

Какую реальную проблему вам нужно решить, пытаясь это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...