#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. Как вы запускаете удаление записи?