【问题标题】:decrement an auto increment column?减少自动增量列?
【发布时间】:2013-01-25 12:56:57
【问题描述】:

好的,所以我有这个脚本,它可以更新或将值插入 mysql,还可以自动增加一列并将枚举值从 0 设置为 1。

现在我试图弄清楚我如何可以反转它,以便将枚举值设置回 0(我认为我知道该怎么做)我还需要弄清楚我如何可以递减或任何相反的东西增量是,是否可以在自动增量列中为 -1?

只要我可以减少自动增量列并将枚举值从 1 更改为 0,就不一定需要删除这些值。

谁能告诉我我该怎么做?谢谢。

<?php

    require_once('includes/session.php');
    require_once('includes/functions.php');
    require('includes/_config/connection.php');

    session_start();

        confirm_logged_in();

        if (isset ($_GET['to'])) {
        $user_to_id = $_GET['to'];


    }


    if (!isset($_GET['to']))
        exit('No user specified.');

    $user_id = $_GET['to'];


    $result = mysql_query("SELECT * FROM ptb_likes WHERE liked_id ='".$user_to_id."' ");

    if( mysql_num_rows($result) > 0) {
    mysql_query("UPDATE ptb_likes SET likes = likes +1 WHERE liked_id = '".$user_to_id."' ");


        $user_to_id = mysql_query("ALTER TABLE likes AUTO_INCREMENT = $id");
    }
    else
    {
        mysql_query("INSERT INTO ptb_likes (user_id, liked_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")"); 

    }



    if($result) 
    { 
    mysql_query("UPDATE ptb_likes SET user_id_has_liked='1' WHERE user_id=".$_SESSION['user_id']."") 
    or die(mysql_error());

    header("Location: {$_SERVER['HTTP_REFERER']}");

    }
    ?>

【问题讨论】:

  • 您不应该想要减少自动增量列。
  • ALTER TABLE some_table AUTO_INCREMENT=12 但是如果你这样做你就错了。

标签: php mysql


【解决方案1】:

按照其他地方的建议

create table b
(
id int not null auto_increment primary key,
foo boolean not null
);

 insert into b (foo) values (true), (false), (false),  (true), (true);

update b set
foo = not foo;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    相关资源
    最近更新 更多