mysql如果没有表就创建_mysql – 改变表是否存在或创建如果没有

MySQL INFORMATION_SCHEMA数据库抢救:

-- First check if the table exists

IF EXISTS(SELECT table_name

FROM INFORMATION_SCHEMA.TABLES

WHERE table_schema = 'db_name'

AND table_name LIKE 'wild')

-- If exists, retreive columns information from that table

THEN

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT

FROM INFORMATION_SCHEMA.COLUMNS

WHERE table_name = 'tbl_name'

AND table_schema = 'db_name';

-- do some action, i.e. ALTER TABLE if some columns are missing

ALTER TABLE ...

-- Table does not exist, create a new table

ELSE

CREATE TABLE ....

END IF;

更多信息:

更新:

另一个选择,可能更容易,是删除现有的表,并使用新的模式重新创建它.为此,您需要:

>创建临时表,即现有表的精确副本

>使用旧表中的数据填充临时表

>丢掉旧桌子

>使用新模式创建新表

>使用临时表中的信息填充新表

>删除临时表.

所以,在SQL代码中:

CREATE TABLE old_table_copy LIKE old_table;

INSERT INTO old_table_copy

SELECT * FROM old_table;

DROP TABLE old_table;

CREATE TABLE new_table (...new values...);

INSERT INTO new_table ([... column names from old table ...])

SELECT [...column names from old table ...]

FROM old_table_copy;

DROP TABLE old_table_copy;

其实最后一步,“放下临时表”,你可以跳过一会儿.为了防万一,你会想要对旧表进行某种备份,即“在案”.

更多信息:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值