- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个票务系统,这是我的表结构:
CREATE TABLE tix_sip
(
tktNum INT UNSIGNED NOT NULL,
sipNum INT UNSIGNED AUTO_INCREMENT,
PRIMARY KEY( sipNum ),
FOREIGN KEY(tktNum) REFERENCES Tix (tktNum)
);
我希望我的 sipNum
能够根据年份进行编号。
示例:20140001、20140002、..20140334、20140335....
我如何让它自动更改前 4 位数字,以便每次明年到来时,它都会创建新的\另一组 AUTO_INCREMENT
ed 数字
示例:20150001, 20150002........ 20160001, 20160002..
顺便说一句,我在我的程序中使用 php 代码,如果解决方案是创建一个函数,这可能会有所帮助。谢谢
最佳答案
您可以使用 MySQL Custom AUTO_INCREMENT values如下:(先看文章)
创建表和触发器:
CREATE TABLE test
(
id int not null auto_increment primary key,
year_autonum varchar(20)
);
delimiter //
DROP TRIGGER IF EXISTS custom_autonums_bi//
CREATE TRIGGER custom_autonums_bi BEFORE INSERT ON test
FOR each ROW
BEGIN
SET NEW.year_autonum = getNextCustomSeq(year(now()),year(now()));
END//
delimiter ;
插入一些值:
insert into test(id) values (null);
insert into test(id) values (null);
insert into test(id) values (null);
...
选择数据:
mysql> select * from test;
+----+--------------+
| id | year_autonum |
+----+--------------+
| 1 | 2014-000001 |
| 2 | 2014-000002 |
| 3 | 2014-000003 |
| 4 | 2014-000004 |
| 5 | 2014-000005 |
| 6 | 2014-000006 |
+----+--------------+
6 rows in set (0.00 sec)
您可以更改过程 getNextCustomSeq
以省略斜杠 -
符号。
关于php - MySQL AUTO_INCREMENT 根据年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24131397/
我们有一张 table : id int(11) auto_increment name varchar(255) 自动增量等于 1。插入行: INSERT INTO `projects` ( `id
我有一个大表,其 ID 列设置为 bigint auto_increment。在历史上的某个时候,我们决定在客户端生成一些伪随机数的 ID。 我的问题很简单:鉴于表列仍设置为 auto_increme
我有一个 MySQL 数据库,包含一个带有 auto_increment 主键的表。 考虑以下定义足以满足此示例: create table test(id integer not null auto
我只是想知道如果两个用户同时注册帐户会发生什么。AUTO_INCRMENT id 号是相同还是不同? 最佳答案 自增锁定 自动增量主键的便利性需要与并发进行一些权衡。在最简单的情况下,如果一个事务正在
用于与 MySQL++(C++ 库)一起工作 数据库有一些字段,您可以对其进行 AUTO_INCREMENT。如何知道向表中插入新行时这些字段的值是多少? 最佳答案 虽然 stacker 的答案会起作
我有一个sqlite表: 例如 CREATE TABLE TEST (id integer primary key, number integer unique, name text); 但是,我需要
是否有一种标准化的方法可以在 SQL 中创建一个带有自动增量列(我们称之为 ID)的表,以便我基本上可以在所有数据库中使用它? (例如在 SQL-92 中标准化) 如果是这样 - 如何?如果不是,为什
在 MySQL 表中,id 列设置为 auto_increment,下一个 auto_increment 在 phpmyadmin 中设置为 128,但添加的任何新行都将 127 作为 id 行中的值
我的问题是:我有一个包含 auto_increment 列的表。当我插入一些值时,一切正常。插入第一行:ID 1插入第二行:ID 2 现在我想在 ID 10 处插入一行。 我的问题是,在此之后只有 I
您好,我知道这个问题以前有人问过,但我问的不同,我想要的是在删除表中的一行后重置 auto_increment 列。如果我有 51 行的表并且我删除了第 48 行,我希望第 49 行重置为 48,50
我正在尝试将 AUTO_INCREMENT 设置为某个值,但我遇到了语法错误。我不确定它是什么,因为我查看了文档并且看起来没问题。但是肯定有错误。 编辑 - 抱歉,我正在使用 mysql phpmya
在我的程序中,我将记录插入表tbl_name。但是我收到了“主键重复条目”错误,这让我很困惑,这是我的代码和错误。 表: CREATE TABLE `tbl_name` ( `id` int(20)
我使用 MySQL 的 AUTO_INCRMENT 字段和 InnoDB 来支持事务。我注意到当我回滚事务时,AUTO_INCRMENT 字段没有回滚?我发现它是这样设计的,但是有什么解决方法吗? 最
我使用 MySQL 的 AUTO_INCRMENT 字段和 InnoDB 来支持事务。我注意到当我回滚事务时,AUTO_INCRMENT 字段没有回滚?我发现它是这样设计的,但是有什么解决方法吗? 最
我需要一些有关 MySQL 的帮助。我的 news 表上有 id 列,并且通常为第一个新闻分配 id=1,id= 2 第二个等等。但我希望它以 001 而不是 1 开头,然后是 002, 003 等等
我需要创建一个带有自动递增主键的表,所以我这样做: String sql = "CREATE TABLE Home" + "(id INTEGER not
user 表在 user_id 上定义时未使用 AUTO_INCRMENT。我想将其更改为 AUTO_INCRMENT 字段。但问题是 user_id 被外键约束中的许多表引用。 我们可以在不删除所有
我正在使用 MySQL 进行数据库项目,并且我的一个表使用组合键作为 PK,entry_ID+user_ID(FK)。 这是表结构: | address_list | CREATE TABLE `ad
我有一些使用带有自动增量功能的主键的MySQL表,这一切似乎都是在第一次插入记录时发生的,但是当我删除中间的任何记录时,它不会重置自动增量计数器,而是继续使用最后一个ID . 例如,我已插入具有以下
我有如下表格 个人信息 CREATE TABLE personalInfo(userid BIGINT AUTO_INCREMENT PRIMARY KEY) 专利信息 CREATE TABLE pa
我是一名优秀的程序员,十分优秀!