loading..
Русский    English
11:47
листать

Вставка строк в таблицу, содержащую автоинкрементируемое поле стр. 4

Как сбросить значение счетчика в заданное значение (MySQL)?

Воспользуемся таблицей, рассмотренной на предыдущей странице, и вставим в неё 3 строки.

  1. CREATE TABLE test_Identity (
  2.      id int(11) NOT NULL AUTO_INCREMENT,
  3.       PRIMARY KEY  (id)
  4.     );
  5.     INSERT INTO test_Identity VALUES(),(),();
  6.     SELECT * FROM test_Identity;

id
1
2
3

Если мы удалим последнюю строку, нумерация продолжится не с 3, а с 4. Т.е. последнее значение счётчика сохраняется и используется при последующем добавлении строк:

  1. DELETE FROM test_Identity WHERE id=3;
  2. INSERT INTO test_Identity VALUES();
  3.     SELECT * FROM test_Identity;

   

id
1
2
4

Возникает вопрос: "А можно ли сделать так, чтобы нумерация продолжилась с последнего имеющегося значения?" Оставляя в стороне вопрос о том, зачем это нужно, ответим - можно. Но устанавливать это значение счётчика нужно вручную. Итак,

  1. DELETE FROM test_Identity WHERE id=4;
  2. ALTER TABLE test_Identity AUTO_INCREMENT = 3;
  3. INSERT INTO test_Identity VALUES(),(),();
  4.     SELECT * FROM test_Identity;

id
1
2
3
4
5

Страницы: 1 2 3 4 5
Тэги:
ALL AND AUTO_INCREMENT AVG battles CASE CAST CHAR CHARINDEX CHECK classes COALESCE CONSTRAINT Convert COUNT CROSS APPLY CTE DATEADD DATEDIFF DATENAME DATEPART DATETIME DDL DEFAULT DELETE DISTINCT DML EXCEPT EXISTS EXTRACT FOREIGN KEY FROM FULL JOIN GROUP BY Guadalcanal HAVING IDENTITY IN INFORMATION_SCHEMA INNER JOIN insert INTERSECT IS NOT NULL IS NULL ISNULL laptop LEFT LEFT OUTER JOIN LEN maker Больше тэгов
Учебник обновлялся
несколько дней назад
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.