mysql的主键是自动增长的,oracle的主键是起啥作用的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql的主键是自动增长的,oracle的主键是起啥作用的相关的知识,希望对你有一定的参考价值。

参考技术A 所有数据库的主键的功能都一样,是区分每行数据的关键字,具有唯一识别的功能。
Oracle中不会像mysql或者Ms SQL可以设置主键id自增。但是它可以通过对id创建一个序列和触发器,然后每次插入时触动这个触发器让id自增。
具体怎么实现,网上有很多
参考技术B 主键主要是用来唯一标识数据库表中的一条记录的。
mysql有自动创建函数
oracle就需要自己写一个序列和触发器
参考技术C 数据库主键是唯一性的

是否自增长 需要设置的
参考技术D CREATE [OR REPLACE] [ALGORITHM = UNDEFINED | MERGE | TEMPTABLE]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]本回答被提问者采纳

mssql 里面存储过程插入了条数据之后的返回

可不可以返回插入的这条数据生成的主键,主键自动生成的.
如果可以要怎样...详细点最好...
详细语法.思路就无需了

参考技术A 如果主键是自动增长的话,可以在执行完之后加一条
select max(id) from table

在sql里面用Procedure
create procedure usp_test
@id int output
as
select @id = max(id) from table

然后再c#那边select就可以取得了
参考技术B 在mysql中主键是自己设定的。如果你没有设定主键,就不可能有主键!primary key 表示主键。 参考技术C 如果主键是自增的话在插入后用这个取@@IDENTITY追问

详细点........

追答

insert into 你的表 (你的列,你的列)values(你的值,你的值)
print @@IDENTITY
你把这两个语句一起执行你就能看到效果了.

追问

但在c#里面怎样读到

追答

你把这个值做为存储过程的返回值就行,在程序里执行玩存储过程把这个返回值取出来.

以上是关于mysql的主键是自动增长的,oracle的主键是起啥作用的的主要内容,如果未能解决你的问题,请参考以下文章

父表的主键是子表的主键,如何使用jpa进行映射?

怎么在oracle数据库中查询一个表的主键是哪一列

Hibernate Envers 管理的审计表的主键是啥?

mssql 里面存储过程插入了条数据之后的返回

cassandra中的主键是唯一的吗?

如何更新一个主键是另一个表的主键的表?