严格使用SQL(没有PHP或其他任何东西),是否可以创建表并仅在该表不存在时将默认数据插入该表?
答案 0 :(得分:2)
使用CREATE TABLE ... SELECT格式:
create table if not exists tablename as select * from defaultdata;
答案 1 :(得分:0)
这是一种方法:
CREATE TABLE IF NOT EXISTS T (
ID int(10) unsigned NOT NULL primary key,
NAME varchar(255) NOT NULL
);
REPLACE INTO T SELECT 1, 'John Doe';
REPLACE INTO T SELECT 2, 'Jane Doe';
REPLACE是SQL标准的MySQL扩展,可以插入,删除和插入。
答案 2 :(得分:0)
您可以对其中一个元数据表进行选择
if(not exists select * from whatever_meta where table_name = "whatever)
begin
...
end
你必须做一些研究才能弄清楚究竟是什么......
答案 3 :(得分:0)
您可以将表状态存储为变量,然后使用该变量来确定是否插入数据?例如:
@status = SHOW TABLES LIKE 'my_table';
INSERT INTO my_table VALUES (1,'hello'),(2,'world') WHERE @status <> false;
Paul Morgan的回答是,它希望数据已存在于另一个表中。 Jonas的回答非常耗费资源,特别是如果有很多替换(如果表存在则不需要)。
答案 4 :(得分:0)
可能是我错过了这一点,但为什么默认数据不能是一组插入语句...而只需要创建表,如果它不存在,则后跟insert语句...这种方式默认数据不必存在于不同的表中。