创建空表
create table admin_user_history select * from admin_user where 1 <> 1;
创建有数据的表
create table admin_user_history select * from admin_user;
临时表将在你连接期间存在。一旦断开时将自动删除表并释放所用的空间。你在连接期间删除该表也同样释放空间。
CREATE TEMPORARY TABLE tmp_table ( key VARCHAR(10) NOT NULL, value INTEGER NOT NULL )
声明临时表是一个HEAP表,允许你指定在内存中创建它
CREATE TEMPORARY TABLE tmp_mem_table ( key VARCHAR(10) NOT NULL, value INTEGER NOT NULL ) TYPE = HEAP
更新时间
`mtime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更改时间',
CREATE TABLE `bank_account` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增唯一ID',
`bank_name` VARCHAR(255) NOT NULL DEFAULT '0' COMMENT '银行名字(Bank Name)',
`name` VARCHAR(50) NOT NULL DEFAULT '0' COMMENT '帐号名称(Name on account)',
`account_number` VARCHAR(50) NOT NULL DEFAULT '0' COMMENT '银行帐号(Account Number)',
`branch_location` VARCHAR(255) NOT NULL DEFAULT '0' COMMENT '支行位置(Branch Location)',
`description` VARCHAR(255) NOT NULL DEFAULT '0' COMMENT '银行描述',
`status` ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '银行帐号状态',
`ctime` DATETIME NOT NULL COMMENT '创建时间',
`mtime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更改时间',
PRIMARY KEY (`id`)
)
COMMENT='银行帐号'
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=2;
定义 AUTO_INCREMENT 起始值
CREATE TABLE `bank_account` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增唯一ID', `name` VARCHAR(50) NOT NULL DEFAULT '0' COMMENT '帐号名称(Name on account)', PRIMARY KEY (`id`) ) COMMENT='银行帐号' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=2;
设置 AUTO_INCREMENT
ALTER TABLE `accounts` AUTO_INCREMENT=792257;
CREATE TABLE IF NOT EXISTS `tab_name` ( `id` int(11) DEFAULT NULL, `purchased` date DEFAULT NULL, KEY `Index 1` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 /*!50100 PARTITION BY LIST (YEAR(purchased)) (PARTITION p0 VALUES IN (1990) DATA DIRECTORY = '/www/data' ENGINE = InnoDB) */;
ALTER TABLE `neo`.`stuff` COMMENT = '用户表' ; ALTER TABLE `neo`.`stuff` CHANGE COLUMN `name` `name` VARCHAR(50) NULL DEFAULT NULL COMMENT '姓名' ; ALTER TABLE `neo`.`stuff` CHANGE COLUMN `password` `password` VARCHAR(50) NULL DEFAULT NULL COMMENT '用户密码' ; CREATE TABLE `stuff` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL COMMENT ''姓名'', `password` varchar(50) DEFAULT NULL COMMENT ''用户密码'', `created` date NOT NULL DEFAULT ''0000-00-00'', PRIMARY KEY (`id`,`created`) ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 COMMENT=''用户表'' /*!50100 PARTITION BY HASH (year(created)) PARTITIONS 10 */
mysql> show engines; +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | MyISAM | YES | MyISAM storage engine | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | CSV | YES | CSV storage engine | NO | NO | NO | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | | InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 9 rows in set (0.00 sec)
修改与切换引擎
ALTER TABLE `test` ENGINE=BLACKHOLE; ALTER TABLE `test` ENGINE=InnoDB;
启用 FEDERATED 引擎, 服务器环境 Ubuntu 13.04
$ sudo vim /etc/mysql/conf.d/federated.cnf [mysqld] federated $ sudo service mysql restart
mysql> show engines; +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | FEDERATED | YES | Federated MySQL storage engine | NO | NO | NO | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | MyISAM | YES | MyISAM storage engine | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | CSV | YES | CSV storage engine | NO | NO | NO | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | | InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 9 rows in set (0.00 sec)
A 服务器
CREATE TABLE `t1` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`sex` ENUM('Y','N') NULL DEFAULT 'Y',
`passwd` VARCHAR(50) NULL DEFAULT NULL,
`ctime` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
`mtime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=4;
B 服务器
DROP TABLE `users`;
CREATE TABLE `users` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`sex` ENUM('Y','N') NULL DEFAULT 'Y',
`ctime` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
`mtime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=FEDERATED connection = 'mysql://www:qwer123@192.168.2.1:3306/test/t1';
上面字段描述是你需要的字段,并非所有字段。这里屏蔽了passwd字段
![]() | 提示 |
|---|---|
connection = 'mysql://用户名:密码@主机:端口/数据库/表名' |
mysql> DROP TABLE `users`;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE `users` (
-> `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
-> `name` VARCHAR(50) NOT NULL,
-> `sex` ENUM('Y','N') NULL DEFAULT 'Y',
-> `ctime` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
-> `mtime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-> PRIMARY KEY (`id`)
-> ) ENGINE=FEDERATED connection = 'mysql://www:qwer123@192.168.2.1:3306/test/t1';
Query OK, 0 rows affected (0.06 sec)
mysql>
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| users |
+----------------+
1 row in set (0.00 sec)
mysql> desc users;
+-------+------------------+------+-----+---------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------------------+-----------------------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | NULL | |
| sex | enum('Y','N') | YES | | Y | |
| ctime | timestamp | NO | | 0000-00-00 00:00:00 | |
| mtime | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-------+------------------+------+-----+---------------------+-----------------------------+
5 rows in set (0.00 sec)
mysql> select * from users;
+----+------+------+---------------------+---------------------+
| id | name | sex | ctime | mtime |
+----+------+------+---------------------+---------------------+
| 1 | neo | Y | 0000-00-00 00:00:00 | 2013-05-17 18:05:09 |
| 2 | zen | Y | 0000-00-00 00:00:00 | 2013-05-17 18:05:11 |
| 3 | lily | N | 0000-00-00 00:00:00 | 2013-05-17 18:05:22 |
+----+------+------+---------------------+---------------------+
3 rows in set (0.01 sec)
![]() | FEDERATED 与 mysqldump 问题! |
|---|---|
切记,mysqldump 只会dump出使用FEDERATED引擎表的结构,不会包含数据。 |