Желая сделать повторяющуюся задачу для базы данных SQLite - PullRequest
0 голосов
/ 28 марта 2020

В настоящее время я использую базу данных, в которой есть таблицы, в одной из которых сотни идентификаторов, и мне нужно что-то добавить в их список.

Также не удается вставить их в базу данных, что разочаровывает. Я все еще новичок, что, вероятно, очевидно из моего кода.

INSERT INTO card_card_categories (id, card_id, card_category_id, num, created_at, updated_at)
    SELECT
        id * 1000 AS id,
        id AS card_id, 
        1412 AS card_category_id, 
        85 AS num, 
        created_at, 
        updated_at
    FROM
        cards
    WHERE
        id = 100994

Это мой текущий SQL оператор вставки. Это хорошо для 1 за один раз, но я не смог найти способ сделать это так, чтобы я мог вводить несколько идентификаторов одновременно и заполнять их, как будто я вставляю их по одному за раз.

Возможно ли это, если да, то как?

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Это было решено с помощью сценария python, который просто повторял процесс с моими идентификаторами, так что это было легко решено, я просто был дураком sh.

0 голосов
/ 30 марта 2020

Коди, ваш запрос НЕ МОЖЕТ работать, поскольку вы путаете столбец «id» (действительный идентификатор) с «виртуальным» именем столбца «id», которое содержит значения, в 1000 раз превышающие исходное значение.

Поскольку вы умножаете каждый «реальный» идентификатор на 1000, НЕТ значения, которое может заканчиваться на 994! Таким образом, предложение WHERE будет каждый раз завершаться с ошибкой - отсюда и сообщение «затронуты 0 строк».

Попробуйте переписать запрос следующим образом:

INSERT INTO card_card_categories (id, card_id, card_category_id, num, created_at, updated_at)
    SELECT
        id * 1000 AS id_1000,
        id AS card_id, 
        1412 AS card_category_id, 
        85 AS num, 
        created_at, 
        updated_at
    FROM
        cards
    WHERE
        card_id = 100994
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...