首页    新闻    下载    文档    论坛     最新漏洞    黑客教程    数据库    搜索    小榕软件实验室怀旧版    星际争霸WEB版    最新IP准确查询   
名称: 密码:      忘记密码  马上注册
数据库 :: 数据库

InnoDB 中文参考手册:13 出错处理


http://www.gipsky.com/
InnoDB 的出错处理不总是与 ANSI SQL 指定的一致。依照 ANSI 标准,在一个 SQL 语句中的任何错误都将引起这条语句的回滚。InnoDB 有时只回滚语句的一部分,有时则是整个事务。 下面的列表详细说明了 InnoDB 的出错处理。



如果用完了表空间内的文件空间,将会得到 MySQL 的 'Table is full' 错误,InnoDB 将回滚这条 SQL 语句。

事务的死锁或锁定等待的超时将会使 InnoDB 回滚整个事务。

一个重复键(duplicate key)只会回滚插入的细节行,甚至在如同 INSERT INTO ... SELECT ...的一个语句中。这或许会发生改变,所以如果在语句中没有指定 IGNORE 选项这个语句将产生回滚。

'row too long' 的错误将回滚整个 SQL 语句。

其它的错误主要由 MySQL 的代码层发现,它们将回滚相应的 SQL 语句。



 

13.1 MySQL 返回的某些错误代码

 



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 删除一个有子记录存在的父行,外键约束失败。必须先删除子记录。



 

13.2 某些操作系统的错误编码

在 Unix 系统中,使用 perror 程序来显示操作系统错误编码的含义,它包含在 MySQL 的分发中。

下面的列表显示常见的 Linux 系统错误代码。



1 EPERM

Operation not permitted

操作不许可

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 resource 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

太多的链接



 

下面的列表显示常见的 Windows 系统错误代码。



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.

文件名,目录名或卷标语法出错





[/code]
<< InnoDB 中文参考手册:12 文件空间管理和磁盘 I/O InnoDB 中文参考手册:14 InnoDB 表的限制 >>
评分
10987654321
API:
gipsky.com& 安信网络
网友个人意见,不代表本站立场。对于发言内容,由发表者自负责任。

系统导航

 

Copyright © 2001-2010 安信网络. All Rights Reserved
京ICP备05056747号