首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用特定字符串自动生成用户名?

如何使用特定字符串自动生成用户名?
EN

Stack Overflow用户
提问于 2012-05-17 13:05:43
回答 4查看 1.4K关注 0票数 0

我正在使用asp.net2008和我的SQL。

我希望自动生成字段username的值,格式为

代码语言:javascript
复制
"SISI001", "SISI002",

等,在SQL中,每当要插入新记录时。

我该怎么做呢?

SQL查询可以是什么?

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-17 14:06:55

添加数据类型为自增整型的列

然后使用"Max()“函数获得表中该列的最大值,并将该值赋给一个整数变量(设该变量为'x')。

在那之后

代码语言:javascript
复制
string userid = "SISI";
x=x+1;
string count = new string('0',6-x.ToString().length);
userid=userid+count+x.ToString();

使用userid作为username

希望能有所帮助。祝好运。

票数 2
EN

Stack Overflow用户

发布于 2012-05-17 13:17:28

A>您需要保存一个表(键),其中包含为各种实体生成的最后一个数字ID。在这种情况下,实体是"user“。因此,该表将包含两个协议,即。实体varchar(100)和lastid int。

然后,您可以编写一个函数,该函数将接收实体名称并返回递增的ID。使用此ID与字符串组件"SISI“连接,以传递给MySQL,以便插入到数据库中。

以下是MySQL表的tblkeys:

代码语言:javascript
复制
CREATE TABLE `tblkeys` (
  `entity` varchar(100) NOT NULL,
  `lastid` int(11) NOT NULL,
  PRIMARY KEY (`entity`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

MySQL函数:

代码语言:javascript
复制
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 ;

示例函数调用:

代码语言:javascript
复制
SELECT getkey('user')

Insert命令示例:

代码语言:javascript
复制
insert into users(username, password) values ('SISI'+getkey('user'), '$password')

B>这样,ID会稍微大一点,但不需要任何额外的表。使用以下SQL获取新的唯一ID:

代码语言:javascript
复制
SELECT ROUND(NOW() + 0)

您可以将其作为insert命令的一部分传递,并将其与"SISI“的字符串组件连接起来。

票数 1
EN

Stack Overflow用户

发布于 2012-05-17 13:40:16

我不是asp.net开发人员,但我可以帮助你

你可以这样做..。

在mysql数据库中创建一个序列,如下所示

代码语言:javascript
复制
CREATE SEQUENCE "Database_name"."SEQUENCE1" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 001 START WITH 21 CACHE 20 NOORDER NOCYCLE ;

然后在插入时使用这个查询

代码语言:javascript
复制
 insert into testing (userName) values(concat('SISI', sequence1.nextval))

希望它能帮助你消除疑虑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10630110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档