SQL - Как сделать условную вставку - PullRequest
5 голосов
/ 15 ноября 2008

Используя только MySQL , я вижу, возможно ли выполнить оператор вставки ТОЛЬКО, если таблица новая. Я успешно создал переменную пользователя, чтобы увидеть, существует ли таблица. Проблема в том, что вы не можете использовать «ГДЕ» вместе с оператором вставки. Любые идеи о том, как заставить это работать?

// See if the "country" table exists -- saving the result to a variable
SELECT
    @table_exists := COUNT(*)
FROM
    information_schema.TABLES
WHERE
    TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'country';

// Create the table if it doesn't exist
CREATE TABLE IF NOT EXISTS country (
    id INT unsigned auto_increment primary key,
    name VARCHAR(64)
);

// Insert data into the table if @table_exists > 0
INSERT INTO country (name) VALUES ('Afghanistan'),('Aland Islands') WHERE 0 < @table_exists;

Ответы [ 2 ]

6 голосов
/ 15 ноября 2008
IF @TableExists > 0 THEN
   BEGIN
       INSERT INTO country (name) VALUES ('Afghanistan'),('Aland Islands');
   END
2 голосов
/ 15 ноября 2008

Используйте оператор if вместо предложения where:

http://dev.mysql.com/doc/refman/5.0/en/if-statement.html

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