2016-01-16 4 views
0

Я хочу вставить данные в свою таблицу, но хочу, чтобы каждая запись имела идентификатор, который еще не был выполнен.SQL создать следующий числовой номер автоматически

Например:

INSERT INTO Table_lol (id, name, email, phone, address) 
VALUES (1, bob, [email protected], 1111111, 123 lollane); 

Я мог бы добавить что-то вроде WHERE NOT EXISTS но что мешает только идентификатор от перезаписи. Я не хочу, чтобы пользователь должен был создать идентификатор, я хочу, чтобы он сгенерировал следующий номер, чтобы пользователь не мог ничего испортить.

Это можно сделать? Благодаря!

+3

[ 'ID INT PRIMARY KEY AUTO_INCREMENT'] (https://dev.mysql.com/doc/refman/5.7/en/example-auto-increment.html) и вставить без указания' id' столбец – lad2025

ответ

2

Использование auto_increment при создании таблицы Ex:

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

Тогда не пишите значение, которое вы хотите для ID Ex:

INSERT INTO Table_lol (name, email, phone, address) 
VALUES (bob, [email protected], 1111111, 123 lollane); 
0

Если это новая таблица, то я бы создал поле id с столбцом идентификации, который автоматически управлял бы идентификатором в поле.

Если это существующая таблица, то попробуйте использовать:

INSERT INTO Table_lol(id, name, email, phone, address) 
    SELECT MAX(id) + 1, 'bob', '[email protected]', 1111111, 123 lollane 
    FROM Table_lol; 
0

Если у вас уже есть таблица сделана и использование косяк автоинкрементным как уже упоминалось в других ответов/комментариев, вы можете выбрать значение Max столбца id и добавьте 1 к нему.

$max = SELECT MAX(id) FROM Table_lol; 
INSERT INTO Table_lol(customer_id, firstname, surname) 
VALUES ($max+1 ,bob, [email protected], 1111111, 123 lollane) 
Смежные вопросы