[英]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.