答:如果是在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的删除 *** 作都会被撤消的。
以上就是关于如何在数据库中插入和删除数据全部的内容,包括:如何在数据库中插入和删除数据、数据库的前触发器和后触发器的区别、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)