国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Mysql中索引和約束的示例語句

瀏覽:63日期:2023-10-07 09:47:53
外鍵查詢一個表的主鍵是哪些表的外鍵

SELECTTABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAMEFROMINFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERETABLE_SCHEMA = ’mydbname’AND REFERENCED_TABLE_NAME = ’表名’;導出所有外鍵語句

SELECTCONCAT(’ALTER TABLE ’, TABLE_NAME, ’ ADD CONSTRAINT ’, CONSTRAINT_NAME, ’ FOREIGN KEY (’, COLUMN_NAME, ’) REFERENCES ’, REFERENCED_TABLE_NAME, ’(’, REFERENCED_COLUMN_NAME, ’) ON DELETE CASCADE ON UPDATE CASCADE;’)FROMINFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERETABLE_SCHEMA = ’mydbname’AND REFERENCED_TABLE_NAME IS NOT NULL;刪除所有外鍵語句

SELECTCONCAT(’ALTER TABLE ’, TABLE_NAME, ’ DROP FOREIGN KEY ’, CONSTRAINT_NAME, ’;’)FROMINFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERETABLE_SCHEMA = ’mydbname’AND REFERENCED_TABLE_NAME IS NOT NULL;自增導出創建自增字段的語句

SELECTCONCAT( ’ALTER TABLE `’, TABLE_NAME, ’` ’, ’MODIFY COLUMN `’, COLUMN_NAME, ’` ’, UPPER( COLUMN_TYPE ), ’ NOT NULL AUTO_INCREMENT COMMENT '’,COLUMN_COMMENT,’';’ ) as ’ADD_AUTO_INCREMENT’FROMinformation_schema.COLUMNS WHERETABLE_SCHEMA = ’mydbname’ AND EXTRA = UPPER( ’AUTO_INCREMENT’ ) ORDER BYTABLE_NAME ASC;創建刪除所有自增字段

SELECTCONCAT( ’ALTER TABLE `’, TABLE_NAME, ’` ’, ’MODIFY COLUMN `’, COLUMN_NAME, ’` ’, UPPER( COLUMN_TYPE ), ’ NOT NULL;’ ) as ’DELETE_AUTO_INCREMENT’FROMinformation_schema.COLUMNS WHERETABLE_SCHEMA = ’mydbname’ AND EXTRA = UPPER( ’AUTO_INCREMENT’ ) ORDER BYTABLE_NAME ASC;索引導出所有索引

SELECTCONCAT(’ALTER TABLE `’,TABLE_NAME,’` ’,’ADD ’,IF(NON_UNIQUE = 1,CASEUPPER( INDEX_TYPE ) WHEN ’FULLTEXT’ THEN’FULLTEXT INDEX’ WHEN ’SPATIAL’ THEN’SPATIAL INDEX’ ELSE CONCAT( ’INDEX `’, INDEX_NAME, ’` USING ’, INDEX_TYPE ) END,IF(UPPER( INDEX_NAME ) = ’PRIMARY’,CONCAT( ’PRIMARY KEY USING ’, INDEX_TYPE ),CONCAT( ’UNIQUE INDEX `’, INDEX_NAME, ’` USING ’, INDEX_TYPE ))),CONCAT( ’(`’, COLUMN_NAME, ’`)’ ),’;’ ) AS ’ADD_ALL_INDEX’ FROMinformation_schema.STATISTICS WHERETABLE_SCHEMA = ’mydbname’ ORDER BYTABLE_NAME ASC,INDEX_NAME ASC;刪除所有索引

SELECTCONCAT( ’ALTER TABLE `’, TABLE_NAME, ’` ’, CONCAT( ’DROP ’, IF ( UPPER( INDEX_NAME ) = ’PRIMARY’, ’PRIMARY KEY’, CONCAT( ’INDEX `’, INDEX_NAME, ’`’ ))), ’;’ ) AS ’DELETE_ALL_INDEX’ FROMinformation_schema.STATISTICS WHERETABLE_SCHEMA = ’mydbname’ ORDER BYTABLE_NAME ASC;數據合并

在數據遷移合并的時候,比較棘手的是不同數據庫主鍵重復,那么我們就要批量修改主鍵的值,為了避免重復我們可以把自增的數字改為字符串

步驟基本上有以下幾步

取消主鍵自增 刪除所有外鍵 修改主鍵字段為varchar 添加所有外鍵 修改主鍵的值 合并數據

修改主鍵值的時候要注意

如果包含id和pid這種自關聯的情況下是不能直接修改值的,就需要先刪除約束再添加。

比如

刪除自約束

ALTER TABLE `t_director` DROP FOREIGN KEY `fk_directorpid`;

修改值

update t_director set directorid=directorid+100000000;update t_director set directorid=CONV(directorid,10,36);update t_director set directorpid=directorpid+100000000 WHERE directorpid is not null;update t_director set directorpid=CONV(directorpid,10,36) WHERE directorpid is not null;

添加自約束

ALTER TABLE t_director ADD CONSTRAINT fk_directorpid FOREIGN KEY (directorpid) REFERENCES t_director(directorid) ON DELETE CASCADE ON UPDATE CASCADE;

注意

CONV(directorpid,10,36)后兩個參數為原數字進制和要轉換后的進制。

第一個參數只要內容是數字就算類型為varchar也可以轉換。

以上就是Mysql中索引和約束的示例語句的詳細內容,更多關于MySQL 索引和約束的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 中文字幕在线播放 | 国产专区中文字幕 | 国产偷自拍 | 欧美特黄一片aa大片免费看 | 亚洲在线小视频 | 国产精品27页| 怡红院免费播放全部视频 | 男人天堂网站在线 | 特级欧美视频aaaaaa | 久久99精品久久久久久久不卡 | 国产成a人亚洲精v品久久网 | 成 人色 网 站 欧美大片在线观看 | 日本道在线播放 | 中文字幕在线免费观看视频 | 国产成人精品免费视频大全可播放的 | 一级看片免费视频 | 2021国产精品一区二区在线 | 日本aa毛片a级毛片免费观看 | 无码精品一区二区三区免费视频 | 色一情一乱一乱91av | 欧美性色黄在线视 | 97超级碰碰碰免费公开在线观看 | 女人张开腿让男人桶个爽 | 黄色免费三级 | 欧美亚洲国产精品久久 | 精品一区二区三区免费爱 | 亚洲视频手机在线观看 | 亚洲一区二区三区四区在线观看 | re久久| 男人的天堂中文字幕 | 生活片毛片 | 欧美激情视频在线观看一区二区三区 | 一级做a爰片久久毛片潮喷 一级做a爰片久久毛片美女 | 日韩一区二区视频在线观看 | 伊人久久影视 | 一级一片一_级一片一 | 欧美三级美国一级 | 亚洲精品免费在线观看 | 欧美在线一 | 美女被男人桶到嗷嗷叫爽网站 | 欧美日韩中文一区二区三区 |