Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

khóa chính hai cột mysql với tự động tăng

nếu bạn đang sử dụng myisam

http://dev.mysql.com/doc /refman/5.0/en/example-auto-increment.html

Đối với bảng MyISAM và BDB, bạn có thể chỉ định AUTO_INCREMENT trên cột phụ trong chỉ mục nhiều cột. Trong trường hợp này, giá trị được tạo cho cộtAUTO_INCREMENT được tính làMAX (auto_increment_column) + 1 WHEREprefix =tiền tố đã cho. Điều này rất hữu ích khi bạn muốn đưa dữ liệu vào các nhóm có thứ tự.

CREATE TABLE animals (
    grp ENUM('fish','mammal','bird') NOT NULL,
    id MEDIUMINT NOT NULL AUTO_INCREMENT,
    name CHAR(30) NOT NULL,
    PRIMARY KEY (grp,id)
) ENGINE=MyISAM;

INSERT INTO animals (grp,name) VALUES
    ('mammal','dog'),('mammal','cat'),
    ('bird','penguin'),('fish','lax'),('mammal','whale'),
    ('bird','ostrich');

SELECT * FROM animals ORDER BY grp,id;

Which returns:

+--------+----+---------+
| grp    | id | name    |
+--------+----+---------+
| fish   |  1 | lax     |
| mammal |  1 | dog     |
| mammal |  2 | cat     |
| mammal |  3 | whale   |
| bird   |  1 | penguin |
| bird   |  2 | ostrich |
+--------+----+---------+

Ví dụ của bạn:

mysql> CREATE TABLE mytable (
    ->     table_id MEDIUMINT NOT NULL AUTO_INCREMENT,
    ->     database_id MEDIUMINT NOT NULL,
    ->     other_column CHAR(30) NOT NULL,
    ->     PRIMARY KEY (database_id,table_id)
    -> ) ENGINE=MyISAM;
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO mytable (database_id, other_column) VALUES
    ->     (1,'Foo'),(1,'Bar'),(2,'Baz'),(1,'Bam'),(2,'Zam'),(3,'Zoo');
Query OK, 6 rows affected (0.00 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM mytable ORDER BY database_id,table_id;
+----------+-------------+--------------+
| table_id | database_id | other_column |
+----------+-------------+--------------+
|        1 |           1 | Foo          |
|        2 |           1 | Bar          |
|        3 |           1 | Bam          |
|        1 |           2 | Baz          |
|        2 |           2 | Zam          |
|        1 |           3 | Zoo          |
+----------+-------------+--------------+
6 rows in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_VALUE () trong MySQL

  2. (mysql, php) Làm cách nào để lấy giá trị trường auto_increment trước khi chèn dữ liệu?

  3. Ví dụ về CURDATE () - MySQL

  4. MySQL's thay thế cho T-SQL's WITH TIES

  5. Cách hiển thị đối chiếu của một cột trong MySQL