导出mysql中的自动递增列描述
Posted
技术标签:
【中文标题】导出mysql中的自动递增列描述【英文标题】:Auto increment column description in export mysql 【发布时间】:2019-02-14 08:31:03 【问题描述】:我想使用 php 代码导出 mysql 数据库,因为我的服务器上没有 mysqldump。我能够创建类似于 phpmyadmin 导出文件的大部分导出文件。我被困在如何添加类似于 phpmyadmin 导出的自动递增列名和值。
--
-- AUTO_INCREMENT for table `event`
--
ALTER TABLE `event`
MODIFY `event_id` bigint(20) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17;
一种方法是使用不同的查询来查找自动增量列名、字段类型及其值。有没有其他办法。让我知道。谢谢
【问题讨论】:
查看SHOW CREATE TABLE的结果 【参考方案1】:INFORMATION_SCHEMA.COLUMNS 表会告诉您列是否为 auto_incrementing。
mysql> create table test.MyTable ( id int auto_increment primary key);
mysql> select * from information_schema.columns where table_schema='test'\G
*************************** 1. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: test
TABLE_NAME: MyTable
COLUMN_NAME: id
ORDINAL_POSITION: 1
COLUMN_DEFAULT: NULL
IS_NULLABLE: NO
DATA_TYPE: int
CHARACTER_MAXIMUM_LENGTH: NULL
CHARACTER_OCTET_LENGTH: NULL
NUMERIC_PRECISION: 10
NUMERIC_SCALE: 0
DATETIME_PRECISION: NULL
CHARACTER_SET_NAME: NULL
COLLATION_NAME: NULL
COLUMN_TYPE: int(11)
COLUMN_KEY: PRI
EXTRA: auto_increment <-- here
PRIVILEGES: select,insert,update,references
COLUMN_COMMENT:
GENERATION_EXPRESSION:
SRS_ID: NULL
表的 auto_increment 的值在 INFORMATION_SCHEMA.TABLES 中。
mysql> insert into test.MyTable () values ();
mysql> select * from information_schema.tables where table_schema='test'\G
*************************** 1. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: test
TABLE_NAME: MyTable
TABLE_TYPE: BASE TABLE
ENGINE: InnoDB
VERSION: 10
ROW_FORMAT: Dynamic
TABLE_ROWS: 1
AVG_ROW_LENGTH: 16384
DATA_LENGTH: 16384
MAX_DATA_LENGTH: 0
INDEX_LENGTH: 0
DATA_FREE: 0
AUTO_INCREMENT: 2 <-- here
CREATE_TIME: 2018-09-09 15:31:45
UPDATE_TIME: 2018-09-09 15:33:29
CHECK_TIME: NULL
TABLE_COLLATION: utf8_general_ci
CHECKSUM: NULL
CREATE_OPTIONS:
TABLE_COMMENT:
顺便说一句,我曾经尝试做你正在做的事情,在纯 PHP 代码中复制 mysqldump 的行为。这比你想象的要难。我的努力还没有完成,而且我不太可能继续工作,因为这些天我不使用 PHP。你可以看看:https://github.com/billkarwin/cats-and-dogs
【讨论】:
以上是关于导出mysql中的自动递增列描述的主要内容,如果未能解决你的问题,请参考以下文章