mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
	
	
		
			17 lines
		
	
	
	
		
			568 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			17 lines
		
	
	
	
		
			568 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import sqlite3
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								con = sqlite3.connect(":memory:")
							 | 
						||
| 
								 | 
							
								con.execute("create table person (id integer primary key, firstname varchar unique)")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Successful, con.commit() is called automatically afterwards
							 | 
						||
| 
								 | 
							
								with con:
							 | 
						||
| 
								 | 
							
								    con.execute("insert into person(firstname) values (?)", ("Joe",))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# con.rollback() is called after the with block finishes with an exception, the
							 | 
						||
| 
								 | 
							
								# exception is still raised and must be catched
							 | 
						||
| 
								 | 
							
								try:
							 | 
						||
| 
								 | 
							
								    with con:
							 | 
						||
| 
								 | 
							
								        con.execute("insert into person(firstname) values (?)", ("Joe",))
							 | 
						||
| 
								 | 
							
								except sqlite3.IntegrityError:
							 | 
						||
| 
								 | 
							
								    print("couldn't add Joe twice")
							 |