我正在使用SQL Server 2008.
我有一个INSERT
声明,从一个表到另一个表插入大量的记录.在插入时,我得到了主键异常.
我的问题是......如果在插入第5行时发生异常......是否会回滚所有四个记录(先前插入的记录)?
提前致谢.
我有个问题。
try {
jdbcConnect( ); //get mysql connect
conn.setAutoCommit( false );
pstmt = conn.prepareStatement (
"INSERT INTO member ( member_name, member_introduce ) VALUES ( ?, ? )", Statement.RETURN_GENERATED_KEYS );
pstmt.setString( 1, "something" );
pstmt.setString( 2, "something" );
pstmt.executeUpdate( );
rs = pstmt.getGeneratedKeys( );
rs.next( );
String no = Integer.toString( rs.getInt( 1 );
pstmt = conn.prepareStatement ( "UPDATE account SET account_name = ? WHERE account_no = ?" );
pstmt.setString( 1, "something");
pstmt.setString( 2, no );
pstmt.executeUpdate( );
conn.commit( );
conn.setAutoCommit( true …
Run Code Online (Sandbox Code Playgroud) 最近我犯了一个错误,即我的 oracle 数据库中的所有表都被删除(从 SQL Developer 工具运行 drop 命令)在我不知道我在错误的数据库中删除表的所有事务序列中。每次删除一组表时,我都会提交操作。到时候,我意识到我已经删除了错误数据库中的表,我来不及回滚,因为它只回滚了最后一个操作。我也在网上搜索,发现SavePoints是解决方案,但我没有配置savepoints。我在 2 天前备份了所有表,因此,我从那里运行脚本并在过去 2 天内进行了丢失的更改。有没有其他方法可以让我的数据库状态恢复。不过,我已经习惯于在执行此类操作时创建保存点。但是,我仍然很困惑。
database-administration rollback oracle11g savepoints oracle-sqldeveloper
我丢了一张桌子试图回滚,但没用.它会像这样工作还是我在这里玩错了?
从大多数注释中可以看出,DDL语句不能通过回滚来解除,而只能通过FLASHBACK来解除.
我尝试撤消DELETE FROM STUDENT;
它仍然无法撤消:
我的执行令是
插入,
删除,
ROLLBACK.