Py学习  »  dh117  »  全部回复
回复总数  1
7 年前
回复了 dh117 创建的主题 » 如何使用mysql unix_timestamp()作为自动增量的起点?

一种方法是使用 stored procedure 就是这样。

接收表创建命令并连接( CONCAT function )表达式结尾处的值。因为查询是字符串格式的,所以 Prepared Statement 是用来执行它的。

DELIMITER $$

DROP PROCEDURE IF EXISTS `createTable`$$

CREATE PROCEDURE createTable(IN strCreateQuery TEXT)
BEGIN
        SET @query = CONCAT(strCreateQuery, " auto_increment=", ROUND(UNIX_TIMESTAMP(CURTIME(4)) * 1000));

        PREPARE stmt FROM @query;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;    
END$$

DELIMITER ;


创建之后,只需使用所需表的创建查询来执行该过程。

CALL createTable("
create table something(
    something_id bigint not null primary key auto_increment,
    something_name varchar(10) not null,
    something_random varchar(3) not null
) engine=InnoDB");