|
问题1
请问这样的 一个 SQL “ select a.X ,a.Y, b.X,b.Y from a inner join b on a.ID=b.ID"
这个是两个table join 出来的
如果用update的话,要如何同时update ?
问题2
在一个记录还没有保存前 “insert into table(field1,field2,field3) values(X,Y,Z)"
可是我们是不知道它的ID。
请问要怎样 insert record 后 同时 又得到它的ID?
环境: .net (C#.net)
DBMS: Mysql4
版主按: 建议楼主把标题注明清楚,谢谢。
[ 本帖最后由 檞寄生 于 23-8-2007 06:27 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 1-8-2007 12:55 AM
|
显示全部楼层
问题一: 不能这样来 update. 一次只能 update 一个 table
问题二: 你要什么 ID?? |
|
|
|
|
|
|
|
发表于 1-8-2007 09:06 AM
|
显示全部楼层
回复 #1 quantum^_^ 的帖子
#1: 做两个update statement 个别update 个别的table lo...
#2: ID 应该是你的primary key 吧...全新的record, ID 是你自己定的...或者用auto generate 的funtion吧..
[ 本帖最后由 deity01 于 1-8-2007 09:16 AM 编辑 ] |
|
|
|
|
|
|
|

楼主 |
发表于 1-8-2007 11:22 AM
|
显示全部楼层
原帖由 goatstudio 于 1-8-2007 12:55 AM 发表 
问题一: 不能这样来 update. 一次只能 update 一个 table
问题二: 你要什么 ID??
原帖由 deity01 于 1-8-2007 09:06 AM 发表 
#1: 做两个update statement 个别update 个别的table lo...
#2: ID 应该是你的primary key 吧...全新的record, ID 是你自己定的...或者用auto generate 的funtion吧..
问题二
ID 是primarykey
ID是auto generate 比如 autonumber
如果用 insert into table ; select ID from table
会不会产生误差?
就是用非常短的时间内执行几个 SQL insert
那么Select 出来的未必是输入的那种
[ 本帖最后由 quantum^_^ 于 1-8-2007 11:57 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 1-8-2007 03:03 PM
|
显示全部楼层
我只能大概猜想你要说什么。。不能完全明白。。。避免让大家有所误会所以我建议你详细些解释。。 |
|
|
|
|
|
|
|
发表于 7-8-2007 03:19 AM
|
显示全部楼层
加这行在前面
"SET NOCOUNT ON "
和后面
" SELECT SCOPE_IDENTITY() AS NewID SET NOCOUNT OFF"
NewID = 这是你要的ID
- sSQL = "SET NOCOUNT ON " & _
- "INSERT INTO <Table>... " & _
- "...) " & _
- "SELECT SCOPE_IDENTITY() AS NewID SET NOCOUNT OFF"
复制代码
Stored Procedure 也一样方法
也可以试试这样,能确保ID是从<Table>取来,重复使用也可以
IDENT_CURRENT('<Table>') |
|
|
|
|
|
|
|

楼主 |
发表于 14-8-2007 11:41 AM
|
显示全部楼层
谢谢楼上各位
给我提示
原来 SCOPE_IDENTITY() 是 给 mssql 用
last_insert_id() 是给 mysql用 的 |
|
|
|
|
|
|
|
发表于 15-8-2007 09:59 AM
|
显示全部楼层
原帖由 quantum^_^ 于 14-8-2007 11:41 AM 发表 
谢谢楼上各位
给我提示
原来 SCOPE_IDENTITY() 是 给 mssql 用
last_insert_id() 是给 mysql用 的
在使用last_insert_id() 之前就把table lock起来,使用完毕后才unlock table,不然如果1秒有1000个insert record的话你就可能拿错ID了 |
|
|
|
|
|
|
|

楼主 |
发表于 1-10-2007 03:47 PM
|
显示全部楼层
原帖由 max5007 于 15-8-2007 09:59 AM 发表 
在使用last_insert_id() 之前就把table lock起来,使用完毕后才unlock table,不然如果1秒有1000个insert record的话你就可能拿错ID了
如何lock ? |
|
|
|
|
|
|
|
发表于 4-10-2007 11:16 PM
|
显示全部楼层
问题一:
你要同时update 两个 table, 在sql 2005里好像可以做到,不过并不简单. 看起来你不是在使用sql 2005 喔. |
|
|
|
|
|
|
| |
本周最热论坛帖子
|