日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何解決空表無法導(dǎo)入數(shù)據(jù)庫的問題?(空表無法導(dǎo)入數(shù)據(jù)庫)

在進(jìn)行數(shù)據(jù)庫導(dǎo)入和導(dǎo)出的操作過程中,我們常常會(huì)遇到空表無法導(dǎo)入數(shù)據(jù)庫的問題。這是因?yàn)樵趯?dǎo)入時(shí),數(shù)據(jù)庫系統(tǒng)默認(rèn)情況下是不支持導(dǎo)入空表的。因此,在進(jìn)行數(shù)據(jù)庫導(dǎo)入操作時(shí),需要注意一些小細(xì)節(jié),避免空表無法導(dǎo)入的情況發(fā)生。本文就將詳細(xì)介紹如何解決這一問題。

創(chuàng)新互聯(lián)建站是一家網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作,提供網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)站制作,建網(wǎng)站,按需開發(fā),網(wǎng)站開發(fā)公司,2013年至今是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價(jià)值為核心業(yè)務(wù),全程參與項(xiàng)目的網(wǎng)站策劃設(shè)計(jì)制作,前端開發(fā),后臺(tái)程序制作以及后期項(xiàng)目運(yùn)營并提出專業(yè)建議和思路。

一、了解空表無法導(dǎo)入數(shù)據(jù)庫的原因

當(dāng)我們把需要導(dǎo)入的表在MySQL中使用show create table tablename命令查看表結(jié)構(gòu)后,會(huì)發(fā)現(xiàn)表結(jié)構(gòu)中包含一下兩個(gè)關(guān)鍵字:

CREATE TABLE `tablename` (

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

其中ENGINE=InnoDB DEFAULT CHARSET=utf8mb4就是表格的默認(rèn)參數(shù),而如果在導(dǎo)入時(shí)表格為空時(shí),MySQL并不會(huì)生成INSERT語句,因此導(dǎo)入失敗。

二、解決方法

了解了空表無法導(dǎo)入數(shù)據(jù)庫的原因,接下來,我們便可以通過以下幾種方法來解決這一問題:

1.修改MySQL的默認(rèn)設(shè)置參數(shù)

我們可以在MySQL的配置文件中增加一句“SET SQL_MODE=”NO_AUTO_VALUE_ON_ZERO”;”,將默認(rèn)?修改為0,這樣在導(dǎo)入空白表格時(shí),MySQL就會(huì)自動(dòng)插入一條自增長ID為0的記錄,從而解決該問題。

2.使用MySQL Workbench軟件進(jìn)行導(dǎo)入

MySQL Workbench是一款MySQL數(shù)據(jù)庫開發(fā)和管理工具,可以方便快捷的進(jìn)行數(shù)據(jù)庫導(dǎo)入操作。在使用該軟件進(jìn)行導(dǎo)入操作時(shí),可以選擇在import options菜單中勾選“Populate options”,然后點(diǎn)擊continue按鈕,MySQL Workbench就會(huì)自動(dòng)給表格插入一條自增長ID為0的記錄,從而解決導(dǎo)入空表格失敗的問題。

3.手動(dòng)插入一條記錄

如果以上兩個(gè)方法都不行,則需要手動(dòng)插入一條記錄。在導(dǎo)入空表數(shù)據(jù)時(shí),手動(dòng)向該表中插入一條數(shù)據(jù)即可。例如,在MySQL Workbench的Query窗口中,我們可以使用如下SQL語句手動(dòng)插入一條數(shù)據(jù):

INSERT INTO `tablename` (`id`, `name`, `age`, `address`) VALUES (1, ‘Tom’, 22, ‘Beijing’);

其中,id字段為主鍵,可以自行指定,因?yàn)槲覀冎皇菫榱私鉀Q空表無法導(dǎo)入問題,所以無需特別關(guān)注。

數(shù)據(jù)庫導(dǎo)入操作是一個(gè)非常重要的工作,在進(jìn)行這項(xiàng)工作時(shí),空表無法導(dǎo)入的問題會(huì)經(jīng)常出現(xiàn)。因此,我們需要通過使用MySQL的默認(rèn)設(shè)置參數(shù)、MySQL Workbench軟件進(jìn)行導(dǎo)入、手動(dòng)插入一條記錄等方式來解決這一問題,以保證我們的工作順利進(jìn)行。

相關(guān)問題拓展閱讀:

  • oracle11g導(dǎo)出數(shù)據(jù)庫時(shí)怎么設(shè)置把空表也導(dǎo)出

oracle11g導(dǎo)出數(shù)據(jù)庫時(shí)怎么設(shè)置把空表也導(dǎo)出

用PLSQL直接導(dǎo)出dmp文件

1、Oracle11g默認(rèn)對空表不分備弊配segment,故使用exp導(dǎo)出Oracle11g數(shù)據(jù)庫時(shí),空型兆表不會(huì)導(dǎo)出。

2、設(shè)置deferred_segment_creation 參數(shù)為FALSE后,無論是空表還是非空表,都分配segment。

在sqlplus中,執(zhí)行如下命令:

SQL>alter system set deferred_segment_creation=false;

查看:

SQL>show parameter deferred_segment_creation;

該值設(shè)置后只對后面新增的表產(chǎn)生作用,對之前建立的空表不起作用。

3、可以使用手工為空表分卜滾租配Extent的方式,來解決導(dǎo)出之前建立的空表的問題。說明如下:

3.1 使用ALLOCATE EXTENT的說明

使用ALLOCATE EXTENT可以為數(shù)據(jù)庫對象分配Extent。其語法如下:

ALLOCATE EXTENT { SIZE integer | DATAFILE ‘filename’ | INSTANCE integer }

可以針對數(shù)據(jù)表、索引、物化視圖等手工分配Extent。

ALLOCATE EXTENT使用樣例:

ALLOCATE EXTENT

ALLOCATE EXTENT(SIZE integer )

ALLOCATE EXTENT(DATAFILE ‘filename’)

ALLOCATE EXTENT(INSTANCE integer)

ALLOCATE EXTENT(SIZE integer DATAFILE ‘filename’)

ALLOCATE EXTENT(SIZE integer INSTANCE integer)

針對數(shù)據(jù)表操作的完整語法如下:

ALTER TABLE table_name ALLOCATE EXTENT | DATAFILE ‘filename’ | INSTANCE integer})>

故,需要構(gòu)建如下樣子簡單的SQL命令:

alter table aTabelName allocate extent

3.2 構(gòu)建對空表分配空間的SQL命令,

查詢當(dāng)前用戶下的所有空表(一個(gè)用戶更好對應(yīng)一個(gè)默認(rèn)表空間)。命令如下:

SQL>select table_name from user_tables where NUM_ROWS=0;

根據(jù)上述查詢,可以構(gòu)建針對空表分配空間的命令語句,如下:

SQL>Select ‘a(chǎn)lter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0

批量輸出上述生成的SQL語句,建立C:\createsql.sql,其內(nèi)容如下:

set heading off;

set echo off;

set feedback off;

set termout on;

spool C:\allocate.sql;

Select ‘a(chǎn)lter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0;

spool off;

執(zhí)行C:\createsql.sql,命令如下:

SQL>@ C:\createsql.sql;

執(zhí)行完畢后,得到C:\allocate.sql文件。

打開該文件會(huì)看到,已經(jīng)得到對所有空表分配空間的命令SQL語句。

3.4 執(zhí)行SQL命令,對空表分配空間:

執(zhí)行C:\allocate.sql,命令如下:

SQL>@ C:\allocate.sql;

執(zhí)行完畢,表已更改。

3.4 此時(shí)執(zhí)行exp命令,即可把包括空表在內(nèi)的所有表,正常導(dǎo)出。

另外:Oracle11g中,對密碼是大小寫敏感的,即密碼中的字母是區(qū)分大小寫的。

在Oracle10g中及以前,密碼中的字母大小寫無所謂。

1、Oracle11g默認(rèn)對空表不分配segment,故使用exp導(dǎo)出Oracle11g數(shù)據(jù)庫時(shí),空表不會(huì)導(dǎo)出。

2、設(shè)置deferred_segment_creation 參數(shù)為FALSE后,無論是空表還是非空表,都分配segment。

在sqlplus中,執(zhí)行如下命令:

SQL>alter system set deferred_segment_creation=false;

查看:

SQL>show parameter deferred_segment_creation;

該值設(shè)置后只大閉拿對后面新增的表產(chǎn)生作用,對之前建立的空表不起作用。

3、可以使用手工為空表分配Extent的方式,來解決導(dǎo)出之前建立的空表的問題。說明如下:

3.1 使用ALLOCATE EXTENT的說明

使用ALLOCATE EXTENT可以為數(shù)據(jù)庫對象分配Extent。其語法如下:

ALLOCATE EXTENT { SIZE integer | DATAFILE ‘filename’ | INSTANCE integer }

可以針對數(shù)據(jù)表、索引、物化視圖等手工分配Extent。

ALLOCATE EXTENT使用樣例:

ALLOCATE EXTENT

ALLOCATE EXTENT(SIZE integer )

ALLOCATE EXTENT(DATAFILE ‘filename’)

ALLOCATE EXTENT(INSTANCE integer)

ALLOCATE EXTENT(SIZE integer   DATAFILE ‘filename’)

ALLOCATE EXTENT(SIZE integer   INSTANCE integer)

針對數(shù)據(jù)表操作的完整語法如下:

ALTER TABLE table_name ALLOCATE EXTENT | DATAFILE ‘filename’ | INSTANCE integer})>

故,需要構(gòu)建如下樣子簡單的SQL命令:

alter table aTabelName allocate extent

3.2 構(gòu)建對空表分配態(tài)隱空間的SQL命令,

查詢當(dāng)前用戶下的所有空表(一個(gè)用戶更好對應(yīng)一個(gè)默認(rèn)表空間)。命令如下:

SQL>select table_name from user_tables where NUM_ROWS=0;

根據(jù)上述查詢,可以構(gòu)建針對空表分配空間的命令語句,如下:

SQL>Select ‘a(chǎn)lter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0

批量輸出上述生成的SQL語句,建立C:\createsql.sql,其內(nèi)容如下:

set heading off;

set echo off;

set feedback off;

set termout on;

spool C:\allocate.sql;

Select ‘a(chǎn)lter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0;

spool off;

執(zhí)行C:\createsql.sql,命令如下:

SQL>@ C:\createsql.sql;

執(zhí)行完畢后,得到C:\allocate.sql文件。

打開該文件會(huì)看到,已經(jīng)得到對所有空表分配空間的命令SQL語句。

3.4 執(zhí)行SQL命令,對空表分配空間:

執(zhí)行C:\allocate.sql,命令如下:

SQL>@ C:\allocate.sql;

執(zhí)行完畢,表已更改。

3.4 此時(shí)執(zhí)行exp命令,即可把包括空表在內(nèi)的滾搭所有表,正常導(dǎo)出。

另外:Oracle11g中,對密碼是大小寫敏感的,即密碼中的字母是區(qū)分大小寫的。

在Oracle10g中及以前,密碼中的字母大小寫無所謂。

1 將數(shù)據(jù)庫TEST完全導(dǎo)出,用扮兆迅戶名system 密碼猜殲manager 導(dǎo)出到D:\daochu.dmp中

exp system/manager@TEST file=d:\daochu.dmp full=y

2 將數(shù)據(jù)庫中system用戶與sys用戶的表廳此導(dǎo)出

exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)

空表無法導(dǎo)入數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于空表無法導(dǎo)入數(shù)據(jù)庫,如何解決空表無法導(dǎo)入數(shù)據(jù)庫的問題?,oracle11g導(dǎo)出數(shù)據(jù)庫時(shí)怎么設(shè)置把空表也導(dǎo)出的信息別忘了在本站進(jìn)行查找喔。

創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。


分享名稱:如何解決空表無法導(dǎo)入數(shù)據(jù)庫的問題?(空表無法導(dǎo)入數(shù)據(jù)庫)
URL地址:http://www.5511xx.com/article/dposedc.html