Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL字段根据年份自动递增_Php_Mysql_Auto Increment - Fatal编程技术网

Php MySQL字段根据年份自动递增

Php MySQL字段根据年份自动递增,php,mysql,auto-increment,Php,Mysql,Auto Increment,我有一个账单表,我需要用以下格式创建ID字段(主键): YYYYXXXX -> YEAR+INT(4) Auto_increment 例如:20150000,20150001,…,20159999 它应该在今年年底结束,明年再从零开始:20160000,20160001。。。 也可以手动更改 也许你们中的一些人可以帮助我,因为我是mysql和php新手 谢谢您需要更新自动递增计数器以实现此目的。样本代码随附 ALTER TABLE `TABLE_NAME` AUTO_INCREMENT

我有一个账单表,我需要用以下格式创建ID字段(主键):

YYYYXXXX -> YEAR+INT(4) Auto_increment
例如:
20150000
20150001
,…,
20159999

它应该在今年年底结束,明年再从零开始:
20160000
20160001
。。。 也可以手动更改

也许你们中的一些人可以帮助我,因为我是mysql和php新手


谢谢

您需要更新自动递增计数器以实现此目的。样本代码随附

ALTER TABLE  `TABLE_NAME` AUTO_INCREMENT =2015000;
但是,您需要确保在2016年初再次更新此文件,如:ALTER TABLE
TABLE_NAME
AUTO_INCREMENT=2016000

您可以创建CRON作业并将此条件逻辑添加到其中:

alter.php:
<?php
 $conn = mysql_connect(.....);
 $selDb = mysql_select_db(....);
 $sql = 'ALTER TABLE  `TABLE_NAME` AUTO_INCREMENT ='.date("Y").'000';
 mysql_execute($sql);
?>

CRON:
1 1 1 1  * php alter.php
alter.php:
克朗:
1*php alter.php

您需要更新自动递增计数器以实现此目的。样本代码随附

ALTER TABLE  `TABLE_NAME` AUTO_INCREMENT =2015000;
但是,您需要确保在2016年初再次更新此文件,如:ALTER TABLE
TABLE_NAME
AUTO_INCREMENT=2016000

您可以创建CRON作业并将此条件逻辑添加到其中:

alter.php:
<?php
 $conn = mysql_connect(.....);
 $selDb = mysql_select_db(....);
 $sql = 'ALTER TABLE  `TABLE_NAME` AUTO_INCREMENT ='.date("Y").'000';
 mysql_execute($sql);
?>

CRON:
1 1 1 1  * php alter.php
alter.php:
克朗:
1*php alter.php

您所说的“手动更改的可能性”是什么意思?顺便说一下:您只是在搜索mysql的解决方案,因为php没有参与设置主键。No。这样做不需要自动增量。原因很简单——它的存在只是为了让数据库中的一行具有某种独特性。它没有关于年份、你的名字或任何你认为应该的数据。这是唯一的一项工作,就是给行指定一个唯一的编号。它也被用于许多内部优化-所以你绝对不能碰它。我写的所有内容都意味着您在为任务查看错误的列。不必将两个数据保存到一列中,只需创建两列即可。拉出数据时,将自动增量与日期粘在一起。简单。你说的“手动更改的可能性”是什么意思?顺便说一下:您只是在搜索mysql的解决方案,因为php没有参与设置主键。No。这样做不需要自动增量。原因很简单——它的存在只是为了让数据库中的一行具有某种独特性。它没有关于年份、你的名字或任何你认为应该的数据。这是唯一的一项工作,就是给行指定一个唯一的编号。它也被用于许多内部优化-所以你绝对不能碰它。我写的所有内容都意味着您在为任务查看错误的列。不必将两个数据保存到一列中,只需创建两列即可。拉出数据时,将自动增量与日期粘在一起。容易的