如何在数据库中插入和删除数据

如何在数据库中插入和删除数据,第1张

答:如果是在VFP里直接 *** 作,可以打开数据库并找到这个记录,然后点前面的小方格,让其变为黑色,然后在命令行中输入“Pack”,记录就被删了。

点小方格的 *** 作是做删除标记;而“Pack”是真正执行删除命令,也就是说在“Pack”之前,你还可以恢复记录。如果是程序方式,打开独占表后,先找到指定的行,再执行DELETE后“Pack”即可。

插入就方便了,指针停在在要加入的记录下一条(程序方式,指针停在要插入的下一条),命令行里输入“Insert

blank

before”,就可以插入一条空记录了。指针这时就会指向当前空白的记录,就可以输入数据了。

我看ORALCE,然后是这样理解的,

例如对一个表进行插入insert *** 作,在插入时触发一个触发器,如果是

事前触发:“before insert on 表名”,则可以在未插入前,对想插入的那一行“insert into 表名 values(a,b,c)”里的a,b,c进行 *** 作,

例如把a换成f,“:newa :=f ”,

":new"是插入前临时内存(用于insert update),保存着insert的记录,“:newa”就引用了临时记录的a,“:newa :=f ”就是把f放进这个a里面,然后才执行临时内存写入表,这时实际插入到表的是(f,b,c)了。

事后触发:因为有时有两个表是相关联的,如果你删除了第一个表,第二个表的某写记录的找不到关联,就变得没意义了,所以为了实现事务的完整性,在删除第一表的某记录后,还要同时删除第二个表的对应记录,这时就用到事后触发了“after delete on 表1”,在对表1进行删除 *** 作时“delete from 表1 where 表1id='001';”,

同时删除表2的记录"delete from 表2 where 表2id=:oldid",

":old"是 *** 作后临时内存(用于delete,update),它保存了进行删除 *** 作后的记录,这里相当于删除表2中“表1id=表2id”的记录。

一楼朋友说的事后触发不能撤消好象不对的,事后触发就是为了保证事务的完整性,只要rollback回滚 *** 作,表1和表2的删除 *** 作都会被撤消的。

以上就是关于如何在数据库中插入和删除数据全部的内容,包括:如何在数据库中插入和删除数据、数据库的前触发器和后触发器的区别、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10085880.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存