首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >导出mysql中的自动增量列描述

导出mysql中的自动增量列描述
EN

Stack Overflow用户
提问于 2018-09-10 05:23:50
回答 1查看 41关注 0票数 1

我想使用PHP代码导出Mysql数据库,因为mysqldump在我的服务器上不可用。我能够获得与phpmyadmin导出文件类似的大部分导出文件创建。我被困在如何添加类似于phpmyadmin导出的自动增量列名和值。

代码语言:javascript
复制
    --
-- AUTO_INCREMENT for table `event`
--
ALTER TABLE `event`
  MODIFY `event_id` bigint(20) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17;

一种方法是使用不同的查询来查找自动增量列名、字段类型和它的值。还有没有别的办法。让我知道。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-10 06:35:27

INFORMATION_SCHEMA.COLUMNS表告诉您列是否为auto_incrementing。

代码语言:javascript
复制
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中。

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52248756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档