MySqlプライマリ・キーの自動成長

3057 ワード

データベースを作成し、テーブルを作成します.


mysql> create database ssh2;
Query OK, 1 row affected (0.04 sec)

mysql> use ssh2;
Database changed
mysql> create table user(
    -> id integer primary key,
    -> firstname varchar(200) not null,
    -> lastname varchar(200) not null,
    -> age integer
    -> );
Query OK, 0 rows affected (0.46 sec)



プライマリ・キーに自己増加機能を追加します.



mysql> alter table user modify id integer auto_increment ;
Query OK, 1 row affected (0.28 sec)
Records: 1  Duplicates: 0  Warnings: 0

これにより,上のuserテーブルの中のプライマリキー,idを自増することができる.
上のプライマリ・キーidにデフォルト値と自己増加機能を追加します.


mysql> alter table user modify id integer auto_increment ;
Query OK, 0 rows affected (0.39 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table user modify id integer default '1';
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table user modify id integer auto_increment ;
Query OK, 1 row affected (0.28 sec)
Records: 1  Duplicates: 0  Warnings: 0

MySql取得システム時間:



mysql> alter table user add createtime timestamp default current_timestamp;
Query OK, 2 rows affected (0.17 sec)
Records: 2  Duplicates: 0  Warnings: 0



MySql設定プライマリ・キーは空ではなく、自動的に増加します(ここではデフォルト値は設定されていませんが、デフォルトは1で、1から増加します).システムのデフォルト日も取得します.


mysql> create table dd(
    -> id int primary key not null auto_increment,
    -> name varchar(20),
    -> time timestamp default current_timestamp
    -> );
Query OK, 0 rows affected (0.10 sec)

mysql> insert into dd(name) values ('fhihgifds');
Query OK, 1 row affected (0.14 sec)

mysql> insert into dd(name) values ('steven');
Query OK, 1 row affected (0.08 sec)

mysql> select * from dd;
+----+-----------+---------------------+
| id | name      | time                |
+----+-----------+---------------------+
|  1 | fhihgifds | 2011-03-27 01:58:46 |
|  2 | steven    | 2011-03-27 01:59:35 |
+----+-----------+---------------------+
2 rows in set (0.08 sec)

mysql> insert into dd(name) values ('anthony');
Query OK, 1 row affected (0.09 sec)

mysql> select * from dd;
+----+-----------+---------------------+
| id | name      | time                |
+----+-----------+---------------------+
|  1 | fhihgifds | 2011-03-27 01:58:46 |
|  2 | steven    | 2011-03-27 01:59:35 |
|  3 | anthony   | 2011-03-27 02:00:07 |
+----+-----------+---------------------+
3 rows in set (0.00 sec)

mysql>