InnoDB 中文參考手冊 --- 13 出錯處理 (轉)

amyz發表於2007-08-15
InnoDB 中文參考手冊 --- 13 出錯處理 (轉)[@more@] words" content="My,InnoDB,4.1.0,Shuixin13, 4.1.0,中文,中文參考手冊,犬犬(心帆)"> CSS rel=STYLESHEET>

InnoDB 的出錯處理不總是與 ANSI SQL 指定的一致。依照 ANSI 標準,在一個 SQL 語句中的任何錯誤都將引起這條語句的回滾。InnoDB 有時只回滾語句的一部分,有時則是整個事務。 下面的列表詳細說明了 InnoDB 的出錯處理。

  • 如果用完了表空間內的空間,將會得到 MySQL 的 'Table is full' 錯誤,InnoDB 將回滾這條 SQL 語句。
  • 事務的死鎖或鎖定等待的超時將會使 InnoDB 回滾整個事務。
  • 一個重複鍵(duplicate key)只會回滾插入的細節行,甚至在如同 INSERT INTO ... ...的一個語句中。這或許會發生改變,所以如果在語句中沒有指定 IGNORE 選項這個語句將產生回滾。
  • 'row too long' 的錯誤將回滾整個 SQL 語句。
  • 其它的錯誤主要由 MySQL 的程式碼層發現,它們將回滾相應的 SQL 語句。

 

 

  • 1005 ER_CANT_CREATE_TABLE 不能建立表。如果錯誤資訊串引用 errno 150,那麼表建立失敗是由於外來鍵沒能正確的形成。
  • 1016 ER_CANT_OPEN_FILE 不能夠透過 .frm 檔案在 InnoDB 資料檔案中找到 InnoDB 表。檢視下面的“發現並修復資料字典錯誤的操作”章節。
  • 1114 ER_RECORD_FILE_FULL InnoDB 用光了表空間內的剩餘空間。你必須增加一個新的資料檔案。
  • 1205 ER_LOCK_WAIT_TIMEOUT 鎖等待超時期滿。事務被回滾。
  • 1213 ER_LOCK_DEADLOCK 事務死鎖。需要重新執行事務。
  • 1216 ER_NO_REFERENCED_ROW 當試圖增加一個新行時,但是沒有父記錄存在,外來鍵約束失敗。必須先新增父記錄。
  • 1217 ER_ROW_IS_REFERENCED 刪除一個有子記錄存在的父行,外來鍵約束失敗。必須先刪除子記錄。

 

的錯誤編碼

在 系統中,使用 perror 來顯示錯誤編碼的含義,它包含在 MySQL 的分發中。

下面的列表顯示常見的 系統錯誤程式碼。

  • 1 EPERM
    Operation not petted
    操作不許可
  • 2 ENOENT
    No such file or directory
    無此檔案或目錄
  • 3 ESRCH
    No such process
    無此過程
  • 4 EINTR
    Interrupted system call
    系統被禁止
  • 5 EIO
    I/O error
    I/O 錯誤
  • 6 ENXIO
    No such device or address
    無此器件或地址
  • 7 E2BIG
    Arg list too long
    Arg 列表太長
  • 8 ENOEXEC
    Exec format error
    Exec 格式錯誤
  • 9 EBADF
    Bad file number
    檔案數目錯誤
  • 10 ECHILD
    No child processes
    無子過程
  • 11 EAGAIN
    Try again
    再試一遍
  • 12 ENOMEM
    Out of memory

  • 13 EACCES
    Permission denied
    許可拒絕
  • 14 EFAULT
    Bad address
    錯誤的地址
  • 15 ENOTBLK
    Block device required
    需要塊裝置
  • 16 EBUSY
    Device or re busy
    裝置或資源忙
  • 17 EEXIST
    File exists
    檔案存在
  • 18 EXDEV
    Cross-device link
    跨器連結
  • 19 ENODEV
    No such device
    無此裝置
  • 20 ENOTDIR
    Not a directory
    不是一個目錄
  • 21 EISDIR
    Is a directory
    是一個目錄
  • 22 EINVAL
    Invalid argument
    無效的自變數
  • 23 ENFILE
    File table overflow
    檔案表溢位
  • 24 EMFILE
    Too many open files
    開啟的檔案太多
  • 25 ENOTTY
    Inappropriate ioctl for device

  • 26 ETXTBSY
    Text file busy
    文字檔案忙
  • 27 EFBIG
    File too large
    檔案太大
  • 28 ENOSPC
    No space left on device
    空間不足
  • 29 ESPIPE
    Illegal seek
    不合法的尋找
  • 30 EROFS
    Read-only file system
    只讀檔案系統
  • 31 EMLINK
    Too many links
    太多的連結

 

下面的列表顯示常見的 系統錯誤程式碼。

  • 1 ERROR_INVALID_FUNCTION
    Incorrect function
    函式錯誤
  • 2 ERROR_FILE_NOT_FOUND
    The system cannot find the file specified
    系統找不到指定檔案
  • 3 ERROR_PATH_NOT_FOUND
    The system cannot find the path specified
    系統找不到指定路徑
  • 4 ERROR_TOO_MANY_OPEN_FILES
    The system cannot open the file
    系統不能開啟檔案
  • 5 ERROR_ACCESS_DENIED
    Access is denied
    訪問被拒絕
  • 6 ERROR_INVALID_HANDLE
    The handle is invalid
    控制程式碼無效
  • 7 ERROR_ARENA_TRASHED
    The storage control blocks were destroyed
    控制塊被損壞
  • 8 ERROR_NOT_ENOUGH_MEMORY
    Not enough storage is available to process this command
    沒有足夠的儲存空間這個指令
  • 9 ERROR_INVALID_BLOCK
    The storage control block address is invalid
    儲存控制塊地址無效
  • 10 ERROR_BAD_ENVIRONMENT
    The environment is incorrect.
    環境錯誤
  • 11 ERROR_BAD_FORMAT
    An attempt was made to load a program with an incorrect format.
    以錯誤的格式嘗試裝入一個程式
  • 12 ERROR_INVALID_ACCESS
    The access code is invalid.
    存取碼無效
  • 13 ERROR_INVALID_DATA
    The data is invalid.
    資料無效
  • 14 ERROR_OUTOFMEMORY
    Not enough storage is available to complete this operation.
    沒有足夠的儲存空間來完成這個操作
  • 15 ERROR_INVALID_DRIVE
    The system cannot find the drive specified.
    系統無法找到指定的器
  • 16 ERROR_CURRENT_DIRECTORY
    The directory cannot be removed.
    目錄無法被移除
  • 17 ERROR_NOT_SAME_DEVICE
    The system cannot move the file to a different disk drive.
    系統無法將檔案移到不同的磁碟驅動器上
  • 18 ERROR_NO_MORE_FILES
    There are no more files.
    沒有更多的檔案
  • 19 ERROR_WRITE_PROTECT
    The media is write protected.
    防寫
  • 20 ERROR_BAD_UNIT
    The system cannot find the device specified.
    系統無法找到指定的裝置
  • 21 ERROR_NOT_READY
    The device is not ready.
    裝置未準備好
  • 22 ERROR_BAD_COMMAND
    The device does not recognize the command.
    裝置不支援這個指令
  • 23 ERROR_CRC
    Data error (cyclic redundancy check).
    資料出錯(迴圈冗餘檢驗)
  • 24 ERROR_BAD_LENGTH
    The program issued a command but the command length is incorrect.
    程式發出指令,但指令長度出錯
  • 25 ERROR_SEEK
    The drive cannot locate a specific area or track on the disk.
    驅動器無法在磁碟上定位指定的區域或磁軌
  • 26 ERROR_NOT_DOS_DISK
    The specified disk or diskette cannot be accessed.
    指定的磁碟或磁碟無法訪問
  • 27 ERROR_SECTOR_NOT_FOUND
    The drive cannot find the sector requested.
    驅動器無法找到需要的扇區
  • 28 ERROR_OUT_OF_PAPER
    The printer is out of paper.
    印表機缺紙
  • 29 ERROR_WRITE_FAULT
    The system cannot write to the specified device.
    系統不能夠向指定的裝置中寫入
  • 30 ERROR_READ_FAULT
    The system cannot read from the specified device.
    系統無法從指定裝置中讀入
  • 31 ERROR_GEN_FAILURE
    A device attached to the system is not functioning.
    系統附著的裝置無法運作
  • 32 ERROR_SHARING_VIOLATION
    The process cannot access the file because it is being used by another process.
    程式無法訪問該檔案因為檔案已被其它程式使用
  • 33 ERROR_LOCK_VIOLATION
    The process cannot access the file because another process has locked a portion of the file.
    程式無法訪問該檔案因為檔案已被其它程式鎖定部分
  • 34 ERROR_WRONG_DISK
    The wrong diskette is in the drive. Insert %2 (Volume Serial Number: %3) into drive %1.
    驅動器中磁碟錯誤。插入 %2 (盤卷序列號:%3)到驅動器 %1中
  • 36 ERROR_SHARING_BUFFER_EXCEEDED
    Too many files opened for sharing.
    太多的檔案為共享開啟
  • 38 ERROR_HANDLE_EOF
    Reached the end of the file.
    達到檔案結束
  • 39 ERROR_HANDLE_DISK_FULL
    The disk is full.
    磁碟已滿
  • 112 ERROR_DISK_FULL
    The disk is full.
    磁碟已滿
  • 123 ERROR_INVALID_NAME
    The filename, directory name, or volume label syntax is incorrect.
    檔名,目錄名或卷標語法出錯

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-957858/,如需轉載,請註明出處,否則將追究法律責任。

相關文章