Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Изменение первичного ключа в базе данных

артур дворников Ученик (182), на голосовании 1 год назад
Как мне сделать так чтобы при добавлении новости ее первичный ключ был 1 а остальные ключи были +1?
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (445772) 1 год назад
  1. Ключи являются внутренним идентификатором записи, не нужно их переставлять на какую-то определенную циферку.
  2. В всете вышесказанного, не нужно менять значения ключей вообще. Это чревато потерей связности базы.
  3. В чем разница между 1 и +1?
  4. Если ты будешь всегда менять ключ новой записи на 1, ты не сможешь занести в таблицу более одной записи.
артур дворниковУченик (182) 1 год назад
у меня идет сортировка новостей по их id
просто я не знаю как сделать сортировку по внесению их времени в бд
мне надо чтобы она были по новизне так сказать
артур дворников, Идея абсолютно ошибочна. Первичный ключ нужен не для того, чтобы сортировать, а для того, чтобы каждая запись имела УНИКАЛЬНЫЙ ключ - который встречается только у одной записи таблицы не не может появиться снова при удалениях/вставках записей. Хочешь сортировать новости - добавь timestamp публикации.
EVK IT Сервис К Мыслитель (5226) 1 год назад
1) По id и есть новизна, если у тебя он как первичный ключ и AUTO INCREMENT
2) По date сортируй если id не нравится
Михаил Просветленный (30520) 1 год назад
Для того, чтобы добавить новость с первичным ключом 1, вам нужно сначала удалить существующий первичный ключ таблицы, следуя инструкциям в разделе Удаление первичного ключа. Затем вы можете создать новый первичный ключ для столбца новости и задать ему значение 1. После этого вы можете вставить новую запись в таблицу с помощью оператора INSERT. Например:
 INSERT INTO news (id, title, content) VALUES (1, 'Новость дня', 'Сегодня произошло что-то удивительное...'); 
Если вы хотите автоматически увеличивать значение первичного ключа на 1 при добавлении новых записей, вы можете использовать свойство IDENTITY для столбца id. Например:
 CREATE TABLE news ( 
id INT IDENTITY(1,1) PRIMARY KEY,
title VARCHAR(100),
content TEXT
);
Это создаст таблицу news с первичным ключом id, который начинается с 1 и увеличивается на 1 при каждой вставке. Тогда вы можете опустить столбец id при вставке записи и он будет заполнен автоматически. Например:
 INSERT INTO news (title, content) VALUES ('Новость дня', 'Сегодня произошло что-то удивительное...'); 
Похожие вопросы