powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / INSERT и ограничение FOREIGN KEY
3 сообщений из 3, страница 1 из 1
INSERT и ограничение FOREIGN KEY
    #37037061
liosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Пишу web приложение, на Java, используя базу данных Derby.
Есть такие таблицы с ограничениями:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE TABLE T_USER (
    username VARCHAR( 40 ) not null primary key,
    pwd_digest VARCHAR( 255 ),
    last_name VARCHAR( 128 ),
    first_name VARCHAR( 128 )
);

CREATE TABLE T_GUESTBOOK (
    bookname VARCHAR( 40 ) not null primary key,
    description VARCHAR( 255 ),
    display_order INTEGER
);

CREATE TABLE T_MODERATOR (
    id BIGINT not null GENERATED ALWAYS AS IDENTITY,
    username VARCHAR( 40 ) not null,
    guestbook_name VARCHAR( 40 ) not null,

    CONSTRAINT pk_moderator PRIMARY KEY (id),
    CONSTRAINT fk_user FOREIGN KEY (username) REFERENCES t_guestbook(bookname) ON DELETE CASCADE,
    CONSTRAINT fk_guestbook_mod FOREIGN KEY (guestbook_name) REFERENCES T_GUESTBOOK(bookname) ON DELETE CASCADE
);

Далее я вставляю тестовые записи:

Код: plaintext
1.
2.
3.
INSERT INTO T_USER (username, pwd_digest) VALUES ('root', '11886-2826124110125-98-95-10564-315099-119-16-65-72065');
INSERT INTO T_GUESTBOOK (bookname, description, display_order) VALUES ('gbsystem', 'Пример',  1 );
INSERT INTO T_MODERATOR (username, guestbook_name) VALUES ('root', 'gbsystem');

Первые две команды выполняются без проблем.
Третья пишет ошибку:
Код: plaintext
1.
Код ошибки -1, положение SQL 23503: INSERT в таблице 'T_MODERATOR' вызывает нарушение ограничения чужого ключа 'FK_USER' для ключа (root).  Произведен откат оператора.

Я не силен в SQLе, и по этому прошу помощи.
Прошу не писать "Читай книги по SQL", разве что с указанием конкретной книги и темы в ней, так как прочитал уже в нескольких книгах по поводу FOREIGN KEY и INSERT, но примера, подходящего к моему случаю не нашел.
...
Рейтинг: 0 / 0
INSERT и ограничение FOREIGN KEY
    #37037077
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
CONSTRAINT fk_user FOREIGN KEY (username) REFERENCES t_guestbook(bookname) ON DELETE CASCADE,

С какого перепуга ты связываешь username c bookname? Наверное правильней с t_user(username)....
...
Рейтинг: 0 / 0
INSERT и ограничение FOREIGN KEY
    #37037094
liosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно. Большое спасибо! Как же я так ошибся..
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / INSERT и ограничение FOREIGN KEY
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]