簡體   English   中英

導出mysql中的自動增量列說明

[英]Auto increment column description in export mysql

我想使用PHP代碼導出Mysql數據庫,因為我的服務器上沒有mysqldump。 我能夠獲得大部分類似於phpmyadmin導出文件的導出文件。 我被困在如何添加類似於phpmyadmin export的自動增量列名稱和值。

    --
-- AUTO_INCREMENT for table `event`
--
ALTER TABLE `event`
  MODIFY `event_id` bigint(20) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17;

一種方法是使用不同的查詢來查找自動遞增的列名稱,字段類型及其值。 還有其他方法嗎? 讓我知道。 謝謝

INFORMATION_SCHEMA.COLUMNS表告訴您列是否在自動遞增。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM