0

我正在尝试这样做:

mysql_query("IF(SELECT COUNT( * ) FROM`messages`) = 0 {
        ALTER TABLE `messages` AUTO_INCREMENT = 1
    }
    IF(SELECT COUNT( * ) FROM`chats`) = 0 {
        ALTER TABLE `chats` AUTO_INCREMENT = 1
    }
    IF((SELECT COUNT( * ) FROM`messages`) = 0 && (SELECT COUNT( * ) FROM`chats`)) {
        ALTER TABLE `users` AUTO_INCREMENT = 1
    }");

但这是不正确的

如果为空,我需要在消息中重置 A_I,如果为空,则在聊天中重置 A_I,如果消息和聊天为空,则在用户中重置 A_I

我有自动增量 ID,截断后它将从 1 开始计数

你有什么想法吗?

我需要一个查询来使用我编写的逻辑重置 3 个表中的自动增量

4

2 回答 2

0

试试这个:

ALTER TABLE `table` AUTO_INCREMENT = 1

顺便说一句,你有一个括号问题,你应该把你的条件用括号括起来。

IF ((SELECT COUNT( * ) FROM`chats`) = 0) {
于 2013-08-23T12:39:28.003 回答
0

你把if放在php中怎么样:

$res1 = mysql_query("SELECT count(*) AS count FROM `messages`");

$row1 = mysql_fetch_object($res1);

if ($row1->count == 0) {
    mysql_query("ALTER TABLE `messages` AUTO_INCREMENT = 1");
}

$res2 = mysql_query("SELECT count(*) AS count FROM `chats`");

$row2 = mysql_fetch_object($res2);

if ($row2->count == 0) {
    mysql_query("ALTER TABLE `chats` AUTO_INCREMENT = 1");
}

if ($row1->count == 0 && $row2->count == 0) {
    mysql_query("TRUNCATE TABLE `users`");
}
于 2013-08-23T12:39:53.777 回答