我正在使用asp.net2008和我的SQL。
我希望自动生成字段username的值,格式为
"SISI001", "SISI002",等,在SQL中,每当要插入新记录时。
我该怎么做呢?
SQL查询可以是什么?
谢谢。
发布于 2012-05-17 14:06:55
添加数据类型为自增整型的列
然后使用"Max()“函数获得表中该列的最大值,并将该值赋给一个整数变量(设该变量为'x')。
在那之后
string userid = "SISI";
x=x+1;
string count = new string('0',6-x.ToString().length);
userid=userid+count+x.ToString();使用userid作为username
希望能有所帮助。祝好运。
发布于 2012-05-17 13:17:28
A>您需要保存一个表(键),其中包含为各种实体生成的最后一个数字ID。在这种情况下,实体是"user“。因此,该表将包含两个协议,即。实体varchar(100)和lastid int。
然后,您可以编写一个函数,该函数将接收实体名称并返回递增的ID。使用此ID与字符串组件"SISI“连接,以传递给MySQL,以便插入到数据库中。
以下是MySQL表的tblkeys:
CREATE TABLE `tblkeys` (
`entity` varchar(100) NOT NULL,
`lastid` int(11) NOT NULL,
PRIMARY KEY (`entity`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;MySQL函数:
DELIMITER $$
CREATE FUNCTION `getkey`( ps_entity VARCHAR(100)) RETURNS INT(11)
BEGIN
DECLARE ll_lastid INT;
UPDATE tblkeys SET lastid = lastid+1 WHERE tblkeys.entity = ps_entity;
SELECT tblkeys.lastid INTO ll_lastid FROM tblkeys WHERE tblkeys.entity = ps_entity;
RETURN ll_lastid;
END$$
DELIMITER ;示例函数调用:
SELECT getkey('user')Insert命令示例:
insert into users(username, password) values ('SISI'+getkey('user'), '$password')B>这样,ID会稍微大一点,但不需要任何额外的表。使用以下SQL获取新的唯一ID:
SELECT ROUND(NOW() + 0)您可以将其作为insert命令的一部分传递,并将其与"SISI“的字符串组件连接起来。
发布于 2012-05-17 13:40:16
我不是asp.net开发人员,但我可以帮助你
你可以这样做..。
在mysql数据库中创建一个序列,如下所示
CREATE SEQUENCE "Database_name"."SEQUENCE1" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 001 START WITH 21 CACHE 20 NOORDER NOCYCLE ;然后在插入时使用这个查询
insert into testing (userName) values(concat('SISI', sequence1.nextval))希望它能帮助你消除疑虑。
https://stackoverflow.com/questions/10630110
复制相似问题