获取最后插入的varchar id是主键

我有多个表,必须使用不同的表格插入,所有表都有一个id是主键, 它的varchar(NOT NULL),所以我有一个名为id_calc($ tbl,$ id)的类函数,其中$ tbl是一个带有表名的参数,而$ id是一个字段id。每次插入这个函数时都必须是 叫做id。</ p>

例如:如果我的id是“web1”,接下来当我插入shud时给“web2”,“web3”......我试过 LAST_INSERT_ID(),但它没有工作。所以我尝试获取max(id)并拆分字符串和变量,但也给了一些问题。我怎么能这样做。请帮助!!! </ p>
\ n

  class first {
公共函数id_calc($ tbl,$ id)
{
$ sql = mysql_query(“SELECT max($ id)FROM $ tbl其中$ id如'%web%' “);
if($ sql)
{
while($ row = mysql_fetch_assoc($ sql))
{
$ user = $ row;
$ a = implode(”“,$ user) ;

}
$ pattern =“/(\ d +)/”;
$ array = preg_split($ pattern,$ a,-1,PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
$ new [] = $ array ['0'];
$ new [] = $ array ['1'] + 1;
$ result = implode(“”,$ new); \ n返回$ result;
}
}
}
</ code> </ pre>

此函数被调用为</ p>

   public function insertreport1()
{
$ obj = new first();
$ id = $ obj-&gt; id_calc(tablename,idfield);
//插入查询
}
</ code> </ pre>

这是我的表结构</ p>

  CREATE TABLEreport
inc_id varchar(25)NOT NULL,
inc_status int(11)NOT NULL,
ininc_datedatetime NOT NULL,
inc_Namevarchar(45)NOT NULL,
inc_Ageint(11)NOT NULL,
inc_Gendervarchar( 45)NOT NULL,
inc_Mobilevarchar(45)NOT NULL,
inc_Addressvarchar(250)NOT NULL,
inc_treatmentvarchar(45)DEFAULT NULL,
inc_useridvarchar(10) NOT NULL,
inc_repTimedatetime NOT NULL
PRIMARY KEY(
inc_id`),

)ENGINE = InnoDB DEFAULT CHARSET = latin1;
</ code> </ pre>
</ div>

展开原文

原文

I have multiple table ,which has to be inserted using different forms and all table have one id which is primary key and its varchar (NOT NULL),So i have one class function named as id_calc($tbl,$id) where $tbl is a parameter with table name and $id is a field id .And each time while inserting this function has to be called for id.

for example: If my id is "web1" ,next when i insert it shud give "web2","web3"...... i have tried with LAST_INSERT_ID() but its not working.so i tried with fetching the max(id) and splitting the string and variable but is also giving some problem.so how can i do this.please help!!!

class first{
public function id_calc($tbl,$id)
    {
        $sql = mysql_query("SELECT max($id) FROM $tbl where $id like '%web%'");
        if($sql)
        {
            while ($row = mysql_fetch_assoc($sql)) 
             {
             $user=$row;
             $a=implode(" ",$user);

        }   
     $pattern = "/(\d+)/";
     $array = preg_split($pattern, $a, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
     $new[]=$array['0'];
     $new[]=$array['1']+1;
     $result=implode("",$new);
        return $result;
        }
    }
}

this function is called like

 public function insertreport1()
    {
    $obj=new first();
    $id=$obj->id_calc(tablename,idfield);
    //insert query
    }

this is my table structure

CREATE TABLE `report` (
  `inc_id` varchar(25) NOT NULL,
  `inc_status` int(11) NOT NULL,
  `inc_date` datetime NOT NULL,
  `inc_Name` varchar(45) NOT NULL,
  `inc_Age` int(11) NOT NULL,
  `inc_Gender` varchar(45) NOT NULL,
  `inc_Mobile` varchar(45) NOT NULL,
  `inc_Address` varchar(250) NOT NULL,
  `inc_treatment` varchar(45) DEFAULT NULL,
  `inc_userid` varchar(10) NOT NULL,
  `inc_repTime` datetime NOT NULL
  PRIMARY KEY (`inc_id`),

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

dongliao9018
dongliao9018 让我们在聊天中继续讨论。
5 年多之前 回复
dtrotfd1012
dtrotfd1012 我已经包括了我的表结构..请看
5 年多之前 回复
dongzaotiao2863
dongzaotiao2863 我需要行,2或3.这将帮助我在本地模拟它
5 年多之前 回复
dro80463
dro80463 对不起,您想要行还是字段?为什么你想要那个?。
5 年多之前 回复
dongwa3808
dongwa3808 有可能你可以给几排你的桌子?
5 年多之前 回复
duanao2688
duanao2688 我试过你的解决方案,但它没有用。
5 年多之前 回复
dongmoyu0336
dongmoyu0336 你可以请更具体地解释....关于自动增量时间戳列..
5 年多之前 回复
dongqu9972
dongqu9972 可以任何人告诉我如何从表中获取最后一个插入的变量,它可以通过使用表单或可以通过手动插入表
5 年多之前 回复
drxd54816
drxd54816 尝试使用new_id='web'+(string)((int)str_replace('web','',id)+1);在索引的某个时间戳字段的where子句中也有一个限制为1的顺序。
5 年多之前 回复
douyin8809
douyin8809 那么,你可能需要一个列进行订购。自动增量一或记录插入时间的时间戳列。
5 年多之前 回复
doubo9799
doubo9799 没有自动增量。
5 年多之前 回复
doumi1944
doumi1944 好吧,桌子上有自动增量柱吗?注意:不推荐使用mysql_*扩展,请不要使用它。
5 年多之前 回复

2个回答



我认为你可以这样做..把查询写成
“SELECT MAX(CAST(SUBSTRING($ id,4) ,12)AS UNSIGNED))FROM $ tbl WHERE $ id LIKE'%web%'“
然后将id增加为web +(max + 1)。</ p>
</ div>

展开原文

原文

i think you can do it this way..write the query as "SELECT MAX(CAST(SUBSTRING($id,4,12) AS UNSIGNED)) FROM $tbl WHERE $id LIKE '%web%'" and then increment the id as web+(max+1).



伪实现将是</ p>

alter table definition </ p>

  alter tabletable add column id int(11)not null auto_increment 
</ code> </ pre>

更改代码</ p>

 <  code> public function id_calc($ tbl,$ idcol){
$ sql = mysql_query(“SELECT id FROM $ tbl order by id desc limit 1”);
if($ sql){
while($ row = mysql_fetch_assoc($ sql));
$ id = isset($ row ['id'])? $ row ['id'] + 1:1;
返回“{$ idcol} {$ id}”;
}
}
</ code> </ pre>

希望 这有助于</ p>
</ div>

展开原文

原文

Pseudo implementation would be

alter table definition

alter table `table` add column id int(11) not null auto_increment

change code

public function id_calc($tbl,$idcol) {
    $sql = mysql_query("SELECT id FROM $tbl order by id desc limit 1");
    if($sql){
        while($row = mysql_fetch_assoc($sql));
        $id = isset($row['id']) ? $row['id'] + 1 : 1;
        return "{$idcol}{$id}";
    }
}

Hope this helps

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何从插入的行中获取最后一个id?

<div class="post-text" itemprop="text"> <p>I'm trying to get the ID of my master table to be inserted to my transaction table. The insert is happening inside a loop.</p> <p>Behavior:</p> <ul> <li>Insert master</li> <li>Get id</li> <li>Insert Transaction</li> <li>Insert Master</li> <li>Get id </li> <li>Insert Transaction</li> </ul> <p>Controller: </p> <pre><code> //Insert Master foreach($arr_master as $res_master){ /*$data['ID_REQUIREMENT_TRANS'] this is an auto-increment column. Inserted automatically*/ $data['ID_REQUIREMENT'] = $res_master; $data['SENT_BY_DATE'] = date("Y-m-d H:i:s"); $data['STATUS'] = 1; $this-&gt;MAdmin-&gt;ins_assign_pic($data); //Insert Trans foreach($arr_trans as $res_trans){ $data_d['ID_REQUIREMENT_TRANS'] = $id; //Need to get the last inserted id of the master table $data_d['RECEIVED_BY'] = $res_trans; $data_d['RECEIVED_BY_DATE'] = NULL; $data_d['STATUS'] = 1; $this-&gt;MAdmin-&gt;ins_assign_pic_d($data_d); } } </code></pre> <p>Model: </p> <pre><code>function ins_assign_pic($data){ $q_ins_assign_pic = $this-&gt;db-&gt;insert('pm_requirement_assign_pic',$data); return $q_ins_assign_pic; $id = $this-&gt;db-&gt;insert_id(); return $id; //How to send this to my controller return true; } function ins_assign_pic_d($data_d){ $q_ins_assign_pic_d = $this-&gt;db-&gt;insert('pm_requirement_assign_pic_d',$data_d); return $q_ins_assign_pic_d; } </code></pre> </div>

sql server 非自动增长id,怎么返回刚插入的数据的id

我的主键id是用的newid() 所以现在插入一条数据成功后然后返回这条数据的id

SQL更新触发插入另一张表时,主键问题

有表A,B, A里面的字段 ID,nvarchar(9),主键(不是自增列) SP,varchar(2), F1,varchar(20), F2,varchar(20), F3,varchar(20), F4,varchar(20), 编码 F5,datatime, F6,numeric(16,2) 表B字段 ID,nvarchar(9),主键(不是自增列) SP,varchar(2), F1,varchar(20), 编码 F2,varchar(20), F3,varchar(20), F4,datatime, F5,numeric(16,2) 表A的SP字段更新值为2时触发,检查当前更新行的F4编码是否在表B F1字段中存在,存在时更新表B,使得: B_F2=A_F2, B_F4=A_F5, B_F5=A_F6,where B_F1=更新行A_F4 如果表A更新行的F4不存在表B中时,在B中插入一行,使得: B_F2=A_F2, B_F4=A_F5, B_F5=A_F6, B_F1=A_F4 这里用insert into select,但是ID列就不行了,A_ID不能直接等于B_ID,还有其他表的数据会生成到表B中。求大神。 字段类型,表都不能改。编码是字母加流水号

java 后台获取mybatis自增主键

现在java后台执行insert操作,想获取 mybatis里这条插入语句的自增主键, <insert id="insertImageInfo" parameterType="Map" > <selectKey keyProperty="source_id" resultType="long" order="AFTER"> SELECT LAST_INSERT_ID() AS source_id </selectKey> insert into tenke_pick_resource (url, path, name, size, height,width,format,status) values (#{url,jdbcType=VARCHAR}, #{path,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{size,jdbcType=INTEGER}, #{height,jdbcType=INTEGER},#{width,jdbcType=INTEGER}, #{format,jdbcType=VARCHAR}, #{status,jdbcType=CHAR} ) </insert> 我是这样写的,source_id 是自增主键, 这样对不对? 而且我后台怎么接收这个主键? 求解

mybatis 带序列批量插入 如何返回ID?

<insert id="addCustomerApplyBlacklist" parameterType="java.util.List"> insert into table( ID, OPTIMISTIC, RESTRICTS_TYPE, RESTRICTS_CONTENT, ENABLE_STATUS, REMARK_INFO, OPERATOR, CREATE_TIME, APP, BUSINESS_CODE) select ***********_ID.nextval,0,A.* from ( <foreach collection="list" item="item" index="index" separator="union all"> select #{item.RESTRICTS_TYPE,jdbcType=VARCHAR}, #{item.RESTRICTS_CONTENT,jdbcType=VARCHAR}, #{item.ENABLE_STATUS,jdbcType=VARCHAR}, #{item.REMARK_INFO, jdbcType=VARCHAR}, #{item.OPERATOR, jdbcType=VARCHAR}, SYSDATE, #{item.APP,jdbcType=VARCHAR}, #{item.BUSINESS_CODE,jdbcType=VARCHAR} from dual </foreach> ) A </insert>

插入数据库中的表时,如何让表的主键ID自动生成并递增?

代码如下所示 ``` public HttpResponseMessage Post(AA a) { db.BB.Add(a); } ``` 其中AA的结构是 ``` public AA { public string Apple{get;set;} public string Banana{get;set;} } ``` 而BB的结构为 ``` public BB { public int ID{get;set;} public string Apple{get;set;} public string Banana{get;set;} } ``` 我现在想讲AA中的数据保存至BB表中,并且ID能够自动生成并递增。 请问有什么办法能够实现

写了一个注册页面,数据库id是主键但是要自动生成id,现在只能生成id为1,怎么按顺序生成id

``` <%@page import="com.sun.corba.se.spi.orbutil.fsm.Guard.Result"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import= "edu.jmi.db.*" %> <%@ page import= "edu.jmi.dao.*" %> <%@ page import= "edu.jmi.model.*" %> <%@ page import= "java.sql.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <style type="text/css"> </style> <body> <center> <% //1设置解码 request.setCharacterEncoding("utf-8"); //2获取参数 String str=request.getParameter("name"); String str1=request.getParameter("password"); String str2=request.getParameter("password2"); String str3=request.getParameter("mail"); System.out.println(str+str1+str2+str3); if(str==null){//如果初次加载页面,直接返回,不会执行下面存取数据库的代码 //return; }else{ session.setAttribute("usr", str); response.sendRedirect("regok.jsp"); //3存取数据库 //3.1获取数据库链接 Connection conn=DB.getConnection(); //3.2准备插入sql语句 String sql="insert into user values(?,?,?,?)"; PreparedStatement pst=conn.prepareStatement(sql); pst.setInt(1, 1); //id pst.setString(2,str);//name pst.setString(3,str1);//pass pst.setString(4,str3);//email //3.3执行插入 int res=pst.executeUpdate(); System.out.println("插入结果是:"+res); pst.close(); conn.close(); } %> <form action="" > <p>用户名:<input type="text" value="" name="name"></p> <p>密码:<input type="password" value="" name="password"></p> <p>确认密码:<input type="password" value="" name="password2"></p> <p>邮箱:<input type="text" value="" name="mail"></p> <input type="submit" value="注册"> <input type="reset" value="重置"> </form> </center> </body> </html> ```

MYSQL查询用到的主键id索引问题

CREATE TABLE `mytest` ( `id` int(10) NOT NULL AUTO_INCREMENT, `a` int(50) DEFAULT NULL, `b` int(50) DEFAULT NULL, `c` int(50) DEFAULT NULL, `index` int(50) DEFAULT NULL, `remark1` varchar(255) DEFAULT NULL, `remark2` varchar(255) DEFAULT NULL, `remark3` varchar(255) DEFAULT NULL, `remark4` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10059857 DEFAULT CHARSET=utf8 COMMENT='测试1000万数据'; 本人菜鸟,希望大佬们多多指教 这是本人测试建的表,插入了1000万数据,主要是为了测试一下mysql千万数据分页查询时的速度,查询8000000往后100条数据 建表因为主键id唯一自增,所以默认为主键索引 ![查看索引](https://img-ask.csdn.net/upload/201903/28/1553762081_28446.png) SELECT * from mytest limit 8000000,100 > OK > 时间: 8.106s 此查未使用到索引,耗时比较久 SELECT * from mytest where id>(SELECT id from mytest LIMIT 8000000,1) limit 100 > OK > 时间: 5.87s 此处似乎用到了索引,速度有所提升? 这是explain结果 ![图片说明](https://img-ask.csdn.net/upload/201903/28/1553763277_276647.png) 此处是外面查询用到了索引,子查询未用到索引吗?试了多次发现都是差不多这个速度,感觉还是挺慢的 然后 按理说主键id已经是自增索引,查询速度应该很快才对吧,这时候我又对主键id这个字段单独创建了一个普通索引 CREATE index id_index on mytest(id) > OK > 时间: 26.275s ![查询索引](https://img-ask.csdn.net/upload/201903/28/1553762745_778699.png) 查看索引发现和主键索引应该没啥区别,可是,,, 发现查询居然变快了不少??? SELECT * from mytest limit 8000000,100 > OK > 时间: 9.242s 这里未用到索引 SELECT * from mytest where id>(SELECT id from mytest LIMIT 8000000,1) limit 100 > OK > 时间: 1.853s 这是explain结果 ![图片说明](https://img-ask.csdn.net/upload/201903/28/1553763018_643436.png) **这里应该是用到了索引,可是为什么会出现这种情况呢,主键id也是索引,查询就比较慢,单独对id创建了一个普通索引查询速度居然变快了许多,想了半天没明白为啥,求前辈们指教** 此外查询时我也尝试连表查询 SELECT * from mytest a join (SELECT id from mytest limit 8000000,100) b on a.id=b.id; 发现和SELECT * from mytest where id>(SELECT id from mytest LIMIT 8000000,1) limit 100;这个查询耗时几乎一致 附一下表数据 ![图片说明](https://img-ask.csdn.net/upload/201903/28/1553764984_854206.png)

Mybatis怎么实现批量的id自增插入到oracle中

因为oracle中并不支持自增id,所以使用下面这种批量的先查询id,再把id的值加1后放到id字段中去,老是报ORA-00933: SQL 命令未正确结束,请大神帮帮忙。 ``` <insert id="addRoleInfo" parameterType="java.util.List" useGeneratedKeys="false" > <selectKey resultType="int" keyProperty="ID" order="BEFORE"> SELECT MAX(ID)+1 FROM PORTAL_SYSTEM_ROLE </selectKey> insert into PORTAL_SYSTEM_ROLE (ID,ROLE_ID,ROLE_NAME,CREATE_TIME,UPDATE_TIME) values <foreach collection="list" item="item" index="index" separator="," > (#{item.id,jdbcType=VARCHAR}, #{item.roleId,jdbcType=VARCHAR}, #{item.roleName,jdbcType=VARCHAR}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}) </foreach> </insert> ``` ``` org.springframework.jdbc.BadSqlGrammarException: ### Error updating database. Cause: java.sql.SQLException: ORA-00933: SQL 命令未正确结束 ### The error may exist in file [E:\HTML\apache-tomcat-7.0.69\webapps\4asyn\WEB-INF\classes\mybatis\RoleMapper.xml] ### The error may involve com.boco.eoms.portal.role.mapper.RoleMapper.addRoleInfo-Inline ### The error occurred while setting parameters ### SQL: insert into PORTAL_SYSTEM_ROLE (ID,ROLE_ID,ROLE_NAME,CREATE_TIME,UPDATE_TIME) values (?, ?, ?, ?, ?) , (?, ?, ?, ?, ?) ### Cause: java.sql.SQLException: ORA-00933: SQL 命令未正确结束 ; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00933: SQL 命令未正确结束 ```

JPA设置entity实例的主键策略为identity,不提交事务,后台有insert语句,但是表中无记录,且主键自动递增了

JPA设置entity实例的主键策略为identity,不提交事务为什么后台有Insert这条记录的语句,但是数据库表中查不到这条记录 奇怪的是重新执行一次插入的事务且提交到数据库,对应的记录主键值不连续。 [img=https://img-bbs.csdn.net/upload/202005/15/1589548612_914621.png][/img] [img=https://img-bbs.csdn.net/upload/202005/15/1589548674_972964.png][/img] [img=https://img-bbs.csdn.net/upload/202005/15/1589548709_856249.png][/img] [color=#FF0000]这些记录都是之前就有的,这次因为没有提交所以没有查到主键为16的记录,但是后台会打出inset语句的日志,这是什么原因呢?[/color] [color=#FF0000]将commit放开,再执行一次[/color] [img=https://img-bbs.csdn.net/upload/202005/15/1589548891_466455.png][/img] [img=https://img-bbs.csdn.net/upload/202005/15/1589548907_208596.png][/img] 这次插入成功,数据库表能查到记录了,但是主键值不是16,而是17,上次插入的记录虽然没有插入成功却影响到了之后的记录, 这是什么原因?

mysql 字符串无法做主键或建索引

text类型没法当主键也没法建索引,但它是用户的唯一id,请问这如何解决

PHP SQLite3插入并选择最后一个不返回结果的ID

<div class="post-text" itemprop="text"> <p>I'm trying to insert new data to SQLite db and select the last ID, when I'm executing the statement in SQLite browser I see that the statement is correct and I get the result. But when I'm trying to get the result in my PHP script, I get "null".</p> <pre><code>&lt;?php class SQLiteDb extends SQLite3{ function __construct(){ $this-&gt;open('chat.db'); $this-&gt;exec('CREATE TABLE IF NOT EXISTS "users" ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `username` VARCHAR(30) NOT NULL, `status` VARCHAR(15) NOT NULL, `date_created` VARCHAR(40) NOT NULL )'); } } $conn = new SQLiteDb(); $sql = "INSERT INTO users (username, status, date_created) VALUES ('test','active','23/09/2015 14:44'); SELECT last_insert_rowid() AS last_id;" $lastId = $conn-&gt;querySingle($sql); var_dump($lastId);//returns null $lastId = $conn-&gt;query($sql); var_dump($lastId); //returns object(SQLite3Result)[3] var_dump($lastId-&gt;fetchArray(SQLITE3_ASSOC)); //returns false </code></pre> </div>

mysql以触发器方式设置主键为uuid,一直报错

建完一张产品表,在原来的表上设置触发器使主键为uuid,但一直报错。 sql语句如下: ```sql CREATE TABLE `product` ( `id` varchar(50) DEFAULT NULL, `productNum` varchar(50) NOT NULL, `productName` varchar(50) DEFAULT NULL, `cityName` varchar(50) DEFAULT NULL, `DepartureTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `productPrice` double DEFAULT NULL, `productDesc` varchar(500) DEFAULT NULL, `productStatus` int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `product` (`id`,`productNum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TRIGGER product_before_insert BEFORE INSERT ON product FOR EACH ROW BEGIN IF NEW.id IS NULL THEN SET NEW.id = SELECT(UUID()) END IF END ``` 错误信息如下 : ![图片说明](https://img-ask.csdn.net/upload/202001/22/1579687029_83369.png) 把id设置为固定值建立触发器也不行。如下所示。 ![图片说明](https://img-ask.csdn.net/upload/202001/22/1579686502_229350.png) 不知道哪里弄懵了!

Oracle主键为varchar hibernate映射文件例子

SSH整合时,Oracle主键为字符串自增,映射文件怎样配置啊! <id name="id" type="String" column="cat_id"> <generator class="uuid.hex"> </generator> </id> 有错!应该怎样配置啊!

oracle自增字段的插入问题

在oracle数据库中,有表A(id NUMBER(16),name VARCHAR2(100)),就是两个字段,都不允许为空,其中id这个字段是连续自增的。现在我想直接插入一条数据,通过oracle客户端执行sql语句来实现。 例如 [color=blue]insert into A(id,name) select max(id),'jack' from A[/color] 我上面的语句是不正确的,最终的效果就是插入的这条数据,id比上一条增加1,name字段可以自己定义,哪位高手麻烦指点下。

oracle数据库主键有规律的自动生成

前提:使用oracle10g 现在有两个表:dept 和 student dept包括 id length=2(专业编号),name(专业名称) student包括 id length=6(学生编号), name(学生名称), sex(性别) 要求: student 的 id 由数据库自动生成。规则是:入学年份 + 专业编号 + 学号(学号不能大于99) 例:有一个学生,是09年入学的,专业的编号是01,学号是20,那么他的id=090120 问题就是这样,有知道如何解决的朋友请帮忙。如果没明白问题的要求,可以提出,我再追加说明。 [b]问题补充:[/b] 对 蔡华江 (架构师) 2009-12-02 提问的追加: 您所说的问题,我也不清楚如何解决,这个是我面试的一道题。 所以不清楚具体的需求,可能他们不需要做这样的关联吧。 另外,如果有知道如何做的朋友,希望你们在解答的时候把具体的代码帖上来。 因为我对oracle也是知之甚少,所以麻烦各位帮忙实现。 [b]问题补充:[/b] hearken01 兄弟: 你好!很感谢你的回答,我按照你的代码,执行了一边。发现结果的确是按照 我的要求生成的。不过,虽然stu_id按要求生成了,可生成的值还有点问题!希 望你能继续帮我解决下,谢谢个先! 我出现的问题是这样的: 我的dept_h表里有了两条记录 dept_id:10, dept_name:物理;dept_id:20,dept_name:化学 student_h表里有两条记录 stu_id:091001,stu_name:aa; stu_id:091002,stu_name:bb 我执行select f_h('物理') from dual;得到的结果却始终是091002 这是为什么啊,我不时很理解,呵呵。还有,如果你有时间,能把你写的代 码多少加点注释好么,我很少接触oracle,所以不时很懂啊 !! [b]问题补充:[/b] hearken01 (中级程序员) : 谢谢你的回答!可是我把你的代码考到了我的机器上运行,结果生成的函数 有错误!然后我大概看了一下,你两次的代码差异,发现了一些不同,而我又看 不太懂,所以帖出来,向你请教: if stu_id<>0 then if stu_id<10 then stu_v := '0' || stu_id; else stu_v := stu_id; end if; else stu_v := '01'; end if; 这里是不是有些重复阿。。。。。。,还有就是两个select语句出错! 我觉得会不会是咱们的表结构不一样啊,所以咱俩统一一下表结构,然后, 麻烦你再帮我调试一次好不?谢谢啦! 我定义的表结构如下(或者你吧你的表结构帖出来也行啊): /* 专业表 */ CREATE TABLE MYDEPT( MYID NUMBER(2,0) NOT NULL, MYNAME VARCHAR2(40), PRIMARY KEY ("MYID") ); /* 学生表 */ CREATE TABLE MYSTUDENT( MYID NUMBER(6,0) NOT NULL, MYNAME VARCHAR2(40), PRIMARY KEY ("MYID") );

oracle采用sequence自动生成主键 不连续问题

oracle采用sequence自动生成主键 第一天跟第二天插入的主键不连续 有谁遇到过这种问题 怎么解决呢 昨天插入的主键 值是1 到了今天第一次插入就跑到了21了 除了这张表的插入之外 没有其他的操作使用过这个sequence序列 --创建t_article表 create table t_article( id number not null primary key, title varchar2(200), content clob, source varchar2(255), createtime date, updatetime date, deploytime date )tablespace users; --创建一个序列 create sequence article_seq minvalue 1 maxvalue 99999999999999 increment by 1 start with 1;

SSM连接sqlserver获取主键重复

日志: update M_mouldPlace set item_no=?, warehouse=?, place=?, keeper=?, validate=?, verify=?, accept=?, status=?, remark=?, lastEditNo=?, lastEditDate=? where mouldID = ? 08:34:20.663 [http-bio-8080-exec-3] DEBUG c.c.d.M.editMouldPlace - ==> Parameters: 566(String), 5555(String), 666(String), 333(String), 66633(String), 322(String), 11133(String), 22000(String), 000(String), 777(String), 2017-10-16(String), 10033,10033(String) 08:34:20.695 [http-bio-8080-exec-3] DEBUG c.c.d.M.editMouldPlace - <== Updates: 0 --为什么主键出现了两个10033,10033,导致update失败,删除也是这样 xml文件: <update id="editMouldPlace" parameterType="com.crm.model.MouldPlace"> update M_mouldPlace <trim prefix="set" suffixOverrides=","> <!-- item_no = #{item_no,jdbcType=VARCHAR}, warehouse = #{warehouse,jdbcType=VARCHAR}, place = #{place,jdbcType=VARCHAR}, keeper = #{keeper,jdbcType=VARCHAR}, validate = #{validate,jdbcType=VARCHAR}, verify = #{verify,jdbcType=VARCHAR}, accept = #{accept,jdbcType=VARCHAR}, status = #{status,jdbcType=VARCHAR}, remark = #{remark,jdbcType=VARCHAR}, lastEditNo = #{lastEditNo,jdbcType=VARCHAR}, lastEditDate = #{lastEditDate,jdbcType=TIMESTAMP} --> <if test="item_no !=null and item_no !=''">item_no=#{item_no,jdbcType=VARCHAR},</if> <if test="warehouse !=null and warehouse !=''">warehouse=#{warehouse,jdbcType=VARCHAR},</if> <if test="place !=null and place !=''">place=#{place,jdbcType=VARCHAR},</if> <if test="keeper !=null and keeper !=''">keeper=#{keeper,jdbcType=VARCHAR},</if> <if test="validate !=null and validate !=''">validate=#{validate,jdbcType=VARCHAR},</if> <if test="verify !=null and verify !=''">verify=#{verify,jdbcType=VARCHAR},</if> <if test="accept !=null and accept !=''">accept=#{accept,jdbcType=VARCHAR},</if> <if test="status !=null and status !=''">status=#{status,jdbcType=VARCHAR},</if> <if test="remark !=null and remark !=''">remark=#{remark,jdbcType=VARCHAR},</if> <if test="lastEditNo !=null and lastEditNo !=''">lastEditNo=#{lastEditNo,jdbcType=VARCHAR},</if> <if test="lastEditDate !=null and lastEditDate !=''">lastEditDate=#{lastEditDate,jdbcType=TIMESTAMP},</if> </trim> where mouldID = #{mouldID} </update>

mysql递归查询树形结构,主键ID保存在一张临时表中,哪位大神帮忙看下,急。。。。。。

CREATE FUNCTION `getTypeChildList` (rootId BIGINT) RETURNS @service_type TABLE (type_id VARCHAR (1000)) AS BEGIN DECLARE sChildList VARCHAR (1000); DECLARE sChildTemp VARCHAR (1000); SET sChildTemp = cast(rootId AS CHAR); WHILE sChildTemp IS NOT NULL DO IF (sChildList IS NOT NULL) THEN INSERT INTO @service_type VALUES (sChildTemp); END IF; SELECT group_concat(type_id) INTO sChildTemp FROM service_type where FIND_IN_SET(parent_id,sChildTemp)>0; END WHILE; RETURN; END; 表:CREATE TABLE `service_type` ( `type_id` bigint(20) NOT NULL, `type_name` varchar(100) DEFAULT NULL COMMENT '类型名称', `parent_id` bigint(20) DEFAULT NULL COMMENT '上一级类型id', PRIMARY KEY (`type_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

课程主要面向嵌入式Linux初学者、工程师、学生 主要从一下几方面进行讲解: 1.linux学习路线、基本命令、高级命令 2.shell、vi及vim入门讲解 3.软件安装下载、NFS、Samba、FTP等服务器配置及使用

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

Python代码实现飞机大战

文章目录经典飞机大战一.游戏设定二.我方飞机三.敌方飞机四.发射子弹五.发放补给包六.主模块 经典飞机大战 源代码以及素材资料(图片,音频)可从下面的github中下载: 飞机大战源代码以及素材资料github项目地址链接 ————————————————————————————————————————————————————————— 不知道大家有没有打过飞机,喜不喜欢打飞机。当我第一次接触这个东西的时候,我的内心是被震撼到的。第一次接触打飞机的时候作者本人是身心愉悦的,因为周边的朋友都在打飞机, 每

Python数据分析与挖掘

92讲视频课+16大项目实战+源码+¥800元课程礼包+讲师社群1V1答疑+社群闭门分享会=99元 &nbsp; 为什么学习数据分析? &nbsp; &nbsp; &nbsp; 人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。 &nbsp; &nbsp; &nbsp; 从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。 &nbsp;&nbsp; 本课程共包含五大模块: 一、先导篇: 通过分析数据分析师的一天,让学员了解全面了解成为一个数据分析师的所有必修功法,对数据分析师不在迷惑。 &nbsp; 二、基础篇: 围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。 &nbsp; 三、数据采集篇: 通过网络爬虫实战解决数据分析的必经之路:数据从何来的问题,讲解常见的爬虫套路并利用三大实战帮助学员扎实数据采集能力,避免没有数据可分析的尴尬。 &nbsp; 四、分析工具篇: 讲解数据分析避不开的科学计算库Numpy、数据分析工具Pandas及常见可视化工具Matplotlib。 &nbsp; 五、算法篇: 算法是数据分析的精华,课程精选10大算法,包括分类、聚类、预测3大类型,每个算法都从原理和案例两个角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。

如何在虚拟机VM上使用串口

在系统内核开发中,经常会用到串口调试,利用VMware的Virtual Machine更是为调试系统内核如虎添翼。那么怎么搭建串口调试环境呢?因为最近工作涉及到这方面,利用强大的google搜索和自己

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:csdn590)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

北京师范大学信息科学与技术学院笔试10复试真题

北京师范大学信息科学与技术学院笔试,可以更好的让你了解北师大该学院的复试内容,获得更好的成绩。

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

本课程适合CCNA或HCNA网络小白同志,高手请绕道,可以直接学习进价课程。通过本预科课程的学习,为学习网络工程师、思科CCNA、华为HCNA这些认证打下坚实的基础! 重要!思科认证2020年2月24日起,已启用新版认证和考试,包括题库都会更新,由于疫情原因,请关注官网和本地考点信息。题库网络上很容易下载到。

Python界面版学生管理系统

前不久上传了一个控制台版本的学生管理系统,这个是Python界面版学生管理系统,这个是使用pycharm开发的一个有界面的学生管理系统,基本的增删改查,里面又演示视频和完整代码,有需要的伙伴可以自行下

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

Tomcat服务器下载、安装、配置环境变量教程(超详细)

未经我的允许,请不要转载我的文章,在此郑重声明!!! 请先配置安装好Java的环境,若没有安装,请参照我博客上的步骤进行安装! 安装Java环境教程https://blog.csdn.net/qq_40881680/article/details/83585542 Tomcat部署Web项目(一)·内嵌https://blog.csdn.net/qq_40881680/article/d...

2019数学建模A题高压油管的压力控制 省一论文即代码

2019数学建模A题高压油管的压力控制省一完整论文即详细C++和Matlab代码,希望对同学们有所帮助

图书管理系统(Java + Mysql)我的第一个完全自己做的实训项目

图书管理系统 Java + MySQL 完整实训代码,MVC三层架构组织,包含所有用到的图片资源以及数据库文件,大三上学期实训,注释很详细,按照阿里巴巴Java编程规范编写

linux下利用/proc进行进程树的打印

在linux下利用c语言实现的进程树的打印,主要通过/proc下的目录中的进程文件,获取status中的进程信息内容,然后利用递归实现进程树的打印

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

[已解决]踩过的坑之mysql连接报“Communications link failure”错误

目录 前言 第一种方法: 第二种方法 第三种方法(适用于项目和数据库在同一台服务器) 第四种方法 第五种方法(项目和数据库不在同一台服务器) 总结 前言 先给大家简述一下我的坑吧,(我用的是mysql,至于oracle有没有这样的问题,有心的小伙伴们可以测试一下哈), 在自己做个javaweb测试项目的时候,因为买的是云服务器,所以数据库连接的是用ip地址,用IDE开发好...

人工智能-计算机视觉实战之路(必备算法+深度学习+项目实战)

系列课程主要分为3大阶段:(1)首先掌握计算机视觉必备算法原理,结合Opencv进行学习与练手,通过实际视项目进行案例应用展示。(2)进军当下最火的深度学习进行视觉任务实战,掌握深度学习中必备算法原理与网络模型架构。(3)结合经典深度学习框架与实战项目进行实战,基于真实数据集展开业务分析与建模实战。整体风格通俗易懂,项目驱动学习与就业面试。 建议同学们按照下列顺序来进行学习:1.Python入门视频课程 2.Opencv计算机视觉实战(Python版) 3.深度学习框架-PyTorch实战/人工智能框架实战精讲:Keras项目 4.Python-深度学习-物体检测实战 5.后续实战课程按照自己喜好选择就可以

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

Python数据分析师-实战系列

系列课程主要包括Python数据分析必备工具包,数据分析案例实战,核心算法实战与企业级数据分析与建模解决方案实战,建议大家按照系列课程阶段顺序进行学习。所有数据集均为企业收集的真实数据集,整体风格以实战为导向,通俗讲解Python数据分析核心技巧与实战解决方案。

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

2021考研数学张宇基础30讲.pdf

张宇:博士,全国著名考研数学辅导专家,教育部“国家精品课程建设骨干教师”,全国畅销书《张宇高等数学18讲》《张宇线性代数9讲》《张宇概率论与数理统计9讲》《张宇考研数学题源探析经典1000题》《张宇考

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

期末考试评分标准的数学模型

大学期末考试与高中的考试存在很大的不同之处,大学的期末考试成绩是主要分为两个部分:平时成绩和期末考试成绩。平时成绩和期末考试成绩总分一般为一百分,然而平时成绩与期末考试成绩所占的比例不同会导致出现不同

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

c语言项目开发实例

十个c语言案例 (1)贪吃蛇 (2)五子棋游戏 (3)电话薄管理系统 (4)计算器 (5)万年历 (6)电子表 (7)客户端和服务器通信 (8)潜艇大战游戏 (9)鼠标器程序 (10)手机通讯录系统

相关热词 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行 c# 循环给数组插入数据 c# 多线程死锁的例子 c# 钉钉读取员工排班 c# label 不显示 c#裁剪影像 c#工作进程更新ui
立即提问