1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

DB is down while filling it with data

Discussão em 'Outras Linguagens' iniciado por Stack, Julho 2, 2021.

  1. Stack

    Stack Membro Participativo

    I have query for DB creation:

    CREATE DATABASE IF NOT EXISTS Library;
    USE Library;

    CREATE TABLE IF NOT EXISTS Subscribers
    (
    s_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,
    s_name VARCHAR(150) NOT NULL
    );

    CREATE TABLE IF NOT EXISTS Subscriptions
    (
    sb_id INTEGER UNSIGNED PRIMARY KEY NOT NULL,
    sb_subscriber INTEGER UNSIGNED NOT NULL,
    sb_book INTEGER UNSIGNED NOT NULL,
    sb_start DATE NOT NULL,
    sb_finish DATE NOT NULL,
    sb_is_active ENUM ('Y', 'N') NOT NULL
    );

    CREATE TABLE IF NOT EXISTS Books
    (
    b_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,
    b_name VARCHAR(150) NOT NULL,
    b_year SMALLINT UNSIGNED NOT NULL,
    b_quantity SMALLINT UNSIGNED NOT NULL
    );

    CREATE TABLE IF NOT EXISTS Genres
    (
    g_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,
    g_name VARCHAR(150) UNIQUE NOT NULL
    );

    CREATE TABLE IF NOT EXISTS Authors
    (
    a_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,
    a_name VARCHAR(150) NOT NULL
    );

    CREATE TABLE IF NOT EXISTS m2m_books_genres
    (
    pfKb_id INTEGER UNSIGNED NOT NULL,
    pfKg_id INTEGER UNSIGNED NOT NULL,
    PRIMARY KEY PK_m2m_books_genres (pfKb_id, pfKg_id)
    );

    CREATE TABLE IF NOT EXISTS m2m_books_authors
    (
    pfKb_id INTEGER UNSIGNED NOT NULL,
    pfKa_id INTEGER UNSIGNED NOT NULL,
    PRIMARY KEY PK_m2m_books_authors (pfKb_id, pfKa_id)
    );

    ALTER TABLE Subscriptions
    ADD CONSTRAINT FK_subscriptions_books
    FOREIGN KEY (sb_book)
    REFERENCES Books (b_id)
    ON DELETE CASCADE ON UPDATE CASCADE;

    ALTER TABLE Subscriptions
    ADD CONSTRAINT FK_subscriptions_subscribers
    FOREIGN KEY (sb_subscriber)
    REFERENCES Subscribers (s_id)
    ON DELETE CASCADE ON UPDATE CASCADE;

    ALTER TABLE m2m_books_genres
    ADD CONSTRAINT FK_m2m_books_genres_books
    FOREIGN KEY (pfKb_id)
    REFERENCES Books (b_id)
    ON DELETE CASCADE ON UPDATE CASCADE;

    ALTER TABLE m2m_books_genres
    ADD CONSTRAINT FK_m2m_books_genres_genres
    FOREIGN KEY (pfKg_id)
    REFERENCES Genres (g_id)
    ON DELETE CASCADE ON UPDATE CASCADE;

    ALTER TABLE m2m_books_authors
    ADD CONSTRAINT FK_m2m_books_authors_authors
    FOREIGN KEY (pfKa_id)
    REFERENCES Authors (a_id)
    ON DELETE CASCADE ON UPDATE CASCADE;

    ALTER TABLE m2m_books_authors
    ADD CONSTRAINT FK_m2m_books_authors_books
    FOREIGN KEY (pfKb_id)
    REFERENCES Books (b_id)
    ON DELETE CASCADE ON UPDATE CASCADE;


    And the query for filling my DB with data:

    USE library;

    INSERT INTO books (b_name, b_year, b_quantity)
    VALUES ('Евгений Онегин', 1985, 2);
    INSERT INTO books (b_name, b_year, b_quantity)
    VALUES ('Сказка о рыбаке и рыбке', 1990, 3);
    INSERT INTO books (b_name, b_year, b_quantity)
    VALUES ('Основания и империя', 2000, 5);
    INSERT INTO books (b_name, b_year, b_quantity)
    VALUES ('Психология и программирование', 1998, 1);
    INSERT INTO books (b_name, b_year, b_quantity)
    VALUES ('Язык программирования С++', 1996, 3);
    INSERT INTO books (b_name, b_year, b_quantity)
    VALUES ('Курс теоритической физики', 1981, 12);
    INSERT INTO books (b_name, b_year, b_quantity)
    VALUES ('Искусство программирования', 1993, 7);

    INSERT INTO authors (a_name)
    VALUES ('Д. Кнут');
    INSERT INTO authors (a_name)
    VALUES ('А. Азимов');
    INSERT INTO authors (a_name)
    VALUES ('Л.Д. Ландау');
    INSERT INTO authors (a_name)
    VALUES ('Е.М. Лифшиц');
    INSERT INTO authors (a_name)
    VALUES ('Б. Страуструп');
    INSERT INTO authors (a_name)
    VALUES ('А.С. Пушкин');

    INSERT INTO genres (g_name)
    VALUES ('Поэзия');
    INSERT INTO genres (g_name)
    VALUES ('Программирование');
    INSERT INTO genres (g_name)
    VALUES ('Психология');
    INSERT INTO genres (g_name)
    VALUES ('Наука');
    INSERT INTO genres (g_name)
    VALUES ('Классика');
    INSERT INTO genres (g_name)
    VALUES ('Фантастика');

    INSERT INTO subscribers (s_name)
    VALUES ('Иванов И.И.');
    INSERT INTO subscribers (s_name)
    VALUES ('Петров П.П.');
    INSERT INTO subscribers (s_name)
    VALUES ('Сидоров С.С.');
    INSERT INTO subscribers (s_name)
    VALUES ('Сидоров С.С.');

    INSERT INTO m2m_books_authors (pfKb_id, pfKa_id)
    VALUES (1, 7);
    INSERT INTO m2m_books_authors (pfKb_id, pfKa_id)
    VALUES (2, 7);
    INSERT INTO m2m_books_authors (pfKb_id, pfKa_id)
    VALUES (3, 2);
    INSERT INTO m2m_books_authors (pfKb_id, pfKa_id)
    VALUES (4, 3);
    INSERT INTO m2m_books_authors (pfKb_id, pfKa_id)
    VALUES (4, 6);
    INSERT INTO m2m_books_authors (pfKb_id, pfKa_id)
    VALUES (5, 6);
    INSERT INTO m2m_books_authors (pfKb_id, pfKa_id)
    VALUES (6, 5);
    INSERT INTO m2m_books_authors (pfKb_id, pfKa_id)
    VALUES (6, 4);
    INSERT INTO m2m_books_authors (pfKb_id, pfKa_id)
    VALUES (7, 1);

    INSERT INTO m2m_books_genres (pfKb_id, pfKg_id)
    VALUES (1, 1);
    INSERT INTO m2m_books_genres (pfKb_id, pfKg_id)
    VALUES (1, 5);
    INSERT INTO m2m_books_genres (pfKb_id, pfKg_id)
    VALUES (2, 1);
    INSERT INTO m2m_books_genres (pfKb_id, pfKg_id)
    VALUES (2, 5);
    INSERT INTO m2m_books_genres (pfKb_id, pfKg_id)
    VALUES (3, 6);
    INSERT INTO m2m_books_genres (pfKb_id, pfKg_id)
    VALUES (4, 2);
    INSERT INTO m2m_books_genres (pfKb_id, pfKg_id)
    VALUES (4, 3);
    INSERT INTO m2m_books_genres (pfKb_id, pfKg_id)
    VALUES (5, 2);
    INSERT INTO m2m_books_genres (pfKb_id, pfKg_id)
    VALUES (6, 5);
    INSERT INTO m2m_books_genres (pfKb_id, pfKg_id)
    VALUES (7, 2);
    INSERT INTO m2m_books_genres (pfKb_id, pfKg_id)
    VALUES (7, 5);

    INSERT INTO subscriptions (sb_id, sb_subscriber, sb_book, sb_start, sb_finish, sb_is_active)
    VALUES (100, 1, 3, 2011 - 01 - 12, 2011 - 02 - 12, 'N');
    INSERT INTO subscriptions (sb_id, sb_subscriber, sb_book, sb_start, sb_finish, sb_is_active)
    VALUES (2, 1, 1, 2011 - 01 - 12, 2011 - 02 - 12, 'N');
    INSERT INTO subscriptions (sb_id, sb_subscriber, sb_book, sb_start, sb_finish, sb_is_active)
    VALUES (3, 3, 3, 2012 - 05 - 17, 2012 - 07 - 12, 'Y');
    INSERT INTO subscriptions (sb_id, sb_subscriber, sb_book, sb_start, sb_finish, sb_is_active)
    VALUES (42, 1, 2, 2012 - 06 - 11, 2012 - 08 - 11, 'N');
    INSERT INTO subscriptions (sb_id, sb_subscriber, sb_book, sb_start, sb_finish, sb_is_active)
    VALUES (57, 4, 5, 2012 - 06 - 11, 2012 - 08 - 11, 'N');
    INSERT INTO subscriptions (sb_id, sb_subscriber, sb_book, sb_start, sb_finish, sb_is_active)
    VALUES (61, 1, 7, 2014 - 08 - 03, 2014 - 10 - 03, 'N');
    INSERT INTO subscriptions (sb_id, sb_subscriber, sb_book, sb_start, sb_finish, sb_is_active)
    VALUES (62, 3, 5, 2014 - 08 - 3, 2014 - 10 - 03, 'Y');
    INSERT INTO subscriptions (sb_id, sb_subscriber, sb_book, sb_start, sb_finish, sb_is_active)
    VALUES (86, 3, 1, 2014 - 08 - 03, 2014 - 09 - 03, 'Y');
    INSERT INTO subscriptions (sb_id, sb_subscriber, sb_book, sb_start, sb_finish, sb_is_active)
    VALUES (91, 4, 1, 2015 - 10 - 07, 2015 - 03 - 07, 'Y');
    INSERT INTO subscriptions (sb_id, sb_subscriber, sb_book, sb_start, sb_finish, sb_is_active)
    VALUES (95, 1, 4, 2015 - 10 - 07, 2015 - 11 - 07, 'N');
    INSERT INTO subscriptions (sb_id, sb_subscriber, sb_book, sb_start, sb_finish, sb_is_active)
    VALUES (99, 4, 4, 2015 - 10 - 08, 2025 - 11 - 08, 'Y');


    Long story short, i get this:

    [23000][1452] Cannot add or update a child row: a foreign key constraint fails (library.m2m_books_authors, CONSTRAINT FK_m2m_books_authors_authors FOREIGN KEY (pfKa_id) REFERENCES authors (a_id) ON DELETE CASCADE ON UPDATE CASCADE)

    I know about solution SET FOREIGN_KEY_CHECKS=0 but I want to solve this issue correctly and find out why is this error happens. Thanks yall for any answers, I appreciate it.

    Continue reading...

Compartilhe esta Página