mysql判斷表不存在則建立

2021-10-07 18:29:34 字數 860 閱讀 3808

mysql判斷不存在時建立表或建立資料庫:

建立資料庫:

create database if not exists mydb character set utf8

建立資料表:

create table if not exists `world`.`newtable`(

`id` bigint(8) unsigned primary key auto_increment,

`name` text,

`birthday` datetime

)engine innodb

判斷mysql表是否存在,常用的方法如下:

show tables like '%tb_bp_d_case%';

select table_name from information_schema.tables wheretable_schema='dbname' and table_name='tablename' ;

需要考慮的是許可權問題

mysql 的授權分為 5 層:全域性層級,資料庫層級,表層級,列層級,子程式層級;

show tables,並不在priv_type列表中,也就是說只要能連線到mysql上都可以執行。

如果使用者許可權是 表層級或者是列層級 的,那麼 show tables; 只能看到有許可權的表名。

如果 查詢 information_schema 庫的話,也是一樣的,只能查詢到有許可權的表。

如果說乙個使用者的許可權不是資料庫層級以上的話就會導致結果不可信賴。

ORACLE 如果表不存在,則建立該錶

oracle使用的是pl sql,不支援if not exists 條件,所以寫了個小例子。使用counter在user all tables中來列舉有幾個product表 如果i 0則說明至少有乙個product表。根據條件的判斷刪或增product表。declare i integer begi...

MySQL如果不存在乙個表則建立

一 問題起因 在前幾天從同事那裡拿來demo研究的時候,發現資料庫名,部分表都一樣,只是有的表沒有,這時如果需要把兩個人的資料庫和成乙個資料庫,就需要處理判斷一張表不存在,如存在則不改動,若不存在,則執行建立。在同事那裡拿到這個資料庫的轉存檔案,然後去手動改動這個.sql轉存檔案對一些自己不確定自己...

MySQL記錄存在則更新,不存在則插入

create table tb file authorize authorize id int 11 not null auto increment,str id int 11 default null comment 使用者標識 file id int 11 default null commen...