Як мне зрабіць мой SQL Першасны ключ Automaticlly прыкінь?

Я вызначыў слупок ідэнтыфікатар у якасці асноўнага ключа, але як я магу зрабіць гэта аўтаматычна адзін больш, чым апошні?

1
SQL або Mysql? Існуе даволі некаторая розніца
дададзена аўтар Patrick Aleman, крыніца

7 адказы

You are lookin for AUTO_INCREMENT, you can check documentation here You will need to set id column as AUTO_INCREMENT

Прыклад з дакументацыі

CREATE TABLE animals (
     id MEDIUMINT NOT NULL AUTO_INCREMENT,
     name CHAR(30) NOT NULL,
     PRIMARY KEY (id)
) ENGINE=MyISAM;
3
дададзена

Вы павінны ўсталяваць автоинкрементные.

CREATE TABLE animals (
 id MEDIUMINT NOT NULL AUTO_INCREMENT,
 name CHAR(30) NOT NULL,
 PRIMARY KEY (id)
) ENGINE=MyISAM;

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

SELECT * FROM animals;

 Which returns:

+----+---------+
| id | name    |
+----+---------+
|  1 | dog     |
|  2 | cat     |
|  3 | penguin |
|  4 | lax     |
|  5 | whale   |
|  6 | ostrich |
+----+---------+

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

1
дададзена

Вы павінны ўсталяваць автоинкрементные.

CREATE TABLE animals (
 id MEDIUMINT NOT NULL AUTO_INCREMENT,
 name CHAR(30) NOT NULL,
 PRIMARY KEY (id)
) ENGINE=MyISAM;

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

SELECT * FROM animals;

 Which returns:

+----+---------+
| id | name    |
+----+---------+
|  1 | dog     |
|  2 | cat     |
|  3 | penguin |
|  4 | lax     |
|  5 | whale   |
|  6 | ostrich |
+----+---------+

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

1
дададзена

Добра не заўважыў пазнакі.

Хіт a_i сцяжок у PhpMyAdmin для слупка ідэнтыфікатараў.

--- --- стары

Oracle шлях, запускаецца паслядоўнасць:

CREATE sequence aic increment BY 1 start WITH 1;

CREATE TABLE blarg (
        id NUMBER(15,0) PRIMARY KEY,
        foobar VARCHAR2(255)
);

CREATE TRIGGER trigger ait BEFORE INSERT ON blarg
REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW
Begin
    SELECT aic.NEXTVAL INTO :NEW.id FROM DUAL;
End;
0
дададзена
Гэта будзе толькі сапраўдны адказ, калі ён не быў для пытання з тэгамі MySQL.
дададзена аўтар Maerlyn, крыніца

Добра не заўважыў пазнакі.

Хіт a_i сцяжок у PhpMyAdmin для слупка ідэнтыфікатараў.

--- --- стары

Oracle шлях, запускаецца паслядоўнасць:

CREATE sequence aic increment BY 1 start WITH 1;

CREATE TABLE blarg (
        id NUMBER(15,0) PRIMARY KEY,
        foobar VARCHAR2(255)
);

CREATE TRIGGER trigger ait BEFORE INSERT ON blarg
REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW
Begin
    SELECT aic.NEXTVAL INTO :NEW.id FROM DUAL;
End;
0
дададзена
Гэта будзе толькі сапраўдны адказ, калі ён не быў для пытання з тэгамі MySQL.
дададзена аўтар Maerlyn, крыніца
"AUTO_INCREMENT" it ...

See the link http://www.w3schools.com/sql/sql_autoincrement.asp

Example: The following SQL statement defines the "P_Id" column to be an auto-increment primary key field in the "Persons" table:

CREATE TABLE Persons
(
  P_Id int NOT NULL AUTO_INCREMENT,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255),
  PRIMARY KEY (P_Id)
)
0
дададзена
"AUTO_INCREMENT" it ...

See the link http://www.w3schools.com/sql/sql_autoincrement.asp

Example: The following SQL statement defines the "P_Id" column to be an auto-increment primary key field in the "Persons" table:

CREATE TABLE Persons
(
  P_Id int NOT NULL AUTO_INCREMENT,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255),
  PRIMARY KEY (P_Id)
)
0
дададзена