mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			20 lines
		
	
	
	
		
			705 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
	
		
			705 B
		
	
	
	
		
			Python
		
	
	
	
	
	
import sqlite3
 | 
						|
 | 
						|
con = sqlite3.connect(":memory:")
 | 
						|
con.execute("create table lang (id integer primary key, name varchar unique)")
 | 
						|
 | 
						|
# Successful, con.commit() is called automatically afterwards
 | 
						|
with con:
 | 
						|
    con.execute("insert into lang(name) values (?)", ("Python",))
 | 
						|
 | 
						|
# con.rollback() is called after the with block finishes with an exception, the
 | 
						|
# exception is still raised and must be caught
 | 
						|
try:
 | 
						|
    with con:
 | 
						|
        con.execute("insert into lang(name) values (?)", ("Python",))
 | 
						|
except sqlite3.IntegrityError:
 | 
						|
    print("couldn't add Python twice")
 | 
						|
 | 
						|
# Connection object used as context manager only commits or rollbacks transactions,
 | 
						|
# so the connection object should be closed manually
 | 
						|
con.close()
 |