Как я могу получить два автоинкремента в одной таблице базы данных?

#sql

#sql

Вопрос:

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

Вот моя ТАБЛИЦА пользователей

 CREATE TABLE users (  
user_id     INT(8) NOT NULL AUTO_INCREMENT,  
user_name   VARCHAR(30) NOT NULL,  
user_pass   VARCHAR(255) NOT NULL,  
user_email  VARCHAR(255) NOT NULL,  
user_date   DATETIME NOT NULL,  
user_level  INT(8) NOT NULL,  
pic_location  VARCHAR(255) NOT NULL,
post_delete  INT(8) NOT NULL AUTO_INCREMENT, 
UNIQUE INDEX user_name_unique (user_name),  
PRIMARY KEY (user_id)  
);
  

и вот моя ТАБЛИЦА posts

 CREATE TABLE posts (  
post_id         INT(8) NOT NULL AUTO_INCREMENT,  
post_content        TEXT NOT NULL,  
post_date       DATETIME NOT NULL,  
post_topic      INT(8) NOT NULL,
post_by     INT(8) NOT NULL,  
PRIMARY KEY (post_id)  
);
  

и вот мой запрос на удаление в php

 $sql = "DELETE FROM posts WHERE post_by =" . $_SESSION['post_delete'];
  

Когда я включаю таблицу, в ней говорится, что может быть только одно автоинкрементное увеличение. Как я могу изменить это, чтобы post_delete мог генерировать уникальные идентификаторы?

Спасибо!

Комментарии:

1. Могу я спросить, зачем вам нужен отдельный уникальный идентификатор для этой цели? С тем же успехом вы могли бы определить строки для удаления, указав их поле user_id .

2. Не могли бы вы объяснить, почему user_id этого недостаточно? Также укажите, какую базу данных вы используете. Пожалуйста, отредактируйте вопрос с ответами.

3. Можете ли вы более подробно объяснить, почему вам нужно такое поле? Это должен быть какой-то счетчик? Или почему вы не используете user_id? поля автоинкремента не являются хорошим выбором для счетчиков, и одного уникального идентификатора на таблицу должно быть достаточно …

4. Да, но если я использую поле user_id, оно удаляет ВСЕ, что опубликовал тот же пользователь, поэтому я хочу иметь как posted_id, на который я могу ссылаться, когда хочу удалить сообщение.

5. @Joemeister — значит, вы хотите, чтобы post_delete ссылался на одно конкретное сообщение? Как насчет других сообщений этого пользователя? Вам нужно иметь post_id в таблице «Posts» (с родительской ссылкой, указывающей на пользователя)

Ответ №1:

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

Комментарии:

1. Я тоже не специалист по триггерам! Как это изменит мою таблицу в нынешнем виде?

2. Что ж, прочитав комментарии к вопросу — я согласен с ребятами там, вам нужно будет ввести идентификатор записи на страницу и получить это значение в SQL. Как вы запускаете удаление записи?