-------------------select ... intooutfile 的 load data infile 的逆操作問題.
一般我們都用insert into table_name values();來給資料表新增記錄.這是一種方法. 當然也可以使用mysqlimport實用程式裝載資料檔案.其實它也是傳送local data infile命令到伺服器
而在輸入大量資料的時候 ,我們可以用load data infile 語法來實現.
load data infile的語法如下:
load data [low_priority | concurrent] [local] infile 'file_name.txt' [replace | ignore] into table tbl_name
[fields
[terminated by '\\t'] ('\\t'為製表符)
[[optionally] enclosed by ''] 說明不包括在任何字元裡面.
[escaped by '\\\\' ] 表明無轉義字元
[lines terminated by '\\n'] 這也是它的預設狀態了
[ignore number lines]
[(col_name,...)]
注:local關鍵字沒有被指定的時候 ,檔案必須在伺服器上.而local被指定時,則可以從客戶端讀取檔案.(在 mysql 3.23.49 和 mysql 4.0.2 中,只有當你沒有以 --local-infile=0 選項啟動 mysqld,或你沒有禁止你的客戶端程式支援 local的情況下,local 才會工作,先於 mysql 3.23.24 的版本,不能夠以 load data infile 讀取)
如果是在服務上讀取的時候,則我們需要知道下面三個問題:
1,若以相對路徑的形式給出,如"./*.txt",則這個目錄是相對伺服器的資料目錄.
2,若是"*.txt"則是從當前資料庫目錄下讀取的檔案.
3,則是完整路徑.即絕對路徑了!
下面的fields子句,一開始錄入的時候,總是報錯.是因為我對fields可選項不清晰的理解問題, 其中的terminated by char 指定乙個字元,標記分隔列.而enclosed
by char 則指示列值被什麼字元所包含.最後的escaped by char則表示用於轉義特殊字元的轉義符.我第一次錄入時,錯誤的原因是因為不清楚它們三個的預設狀況.上面的語法部分列出的就是它們的預設狀況.見上.
另外當你同時輸出檔案與讀取記錄時,即用select ... into outfileload data infile 和 load data infile 時,必須注意兩個命令的字段和行處理選項必須匹配.
可能會遇到的問題如下:
data truncation: data truncated for column 'id' at row 3
這種問題是在你沒有搞清mysql資料型別的前提下會發生的一種情況,建議基礎不好的先看一下sql語言的資料型別.搞清之後就不會發生斷開的問題了。
以上內容到此結束。更多資料庫教程可前往課課家官方網。
怎麼遷mysql資料庫 MySQL資料庫遷移
mysql資料庫遷移 資料檔案直接遷移 在遷移之前有三種方案 1.資料庫直接匯出,拷貝檔案到新伺服器,在新伺服器上匯入。2.使用 mysql gui tools 中的 mysqlmigrationtool。3.資料檔案和庫表結構檔案直接拷貝到新伺服器,掛載到同樣配置的mysql服務下。我在我的電腦上...
MySQL資料庫基礎 MySQL資料庫與資料表操作
資料表操作 3.修改表名 4.更改表的自增的值 5.修改表引擎 6.刪除表 資料表的操作 資料庫操作 1.資料庫的建立 鏈結mysql資料庫後,進入demo後可以運算元據 1.建立庫 create database if not exists demo default charset utf8 1....
怎麼恢復MySQL資料庫
雲資料庫 rds是阿里雲提供的即開即用的關係型資料庫服務,相容了mysql sql server postgresql ppas 高度相容oracle 四種資料庫引擎。在傳統資料庫的基礎上,阿里雲rds提供了強大豐富的功能從而保證了高可用性 高安全性以及高效能。此外,rds還提供了諸多便利功能提公升...