MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....
	Модератор: terminus
	
		
					Правила форума
			Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
		
		
	 
	
			
		
		
		
			- 
				
								artemn							
 
						- рядовой
 			
		- Сообщения: 32
 		- Зарегистрирован: 2007-06-15 15:09:15
 		
		
																- Откуда: СПб
 
							
							- 
				Контактная информация:
				
			
 
				
		
		
						
						
													
							
						
									
						Непрочитанное сообщение
					
								 artemn » 2015-10-27 13:41:47
			
			
			
			
			Приветствую читатели.
Код: Выделить всё
test=# CREATE TABLE TEST (
test(# id serial PRIMARY KEY,
test(# description varchar NOT NULL UNIQUE
test(# );
CREATE TABLE
test=# INSERT INTO test (description) VALUES ('1');
INSERT 0 1
test=# SELECT * FROM test;
 id | description
----+-------------
  1 | 1
(1 строка)
test=# INSERT INTO test (description) VALUES ('1');
ERROR:  duplicate key value violates unique constraint "test_description_key"
ПОДРОБНОСТИ:  Key (description)=(1) already exists.
test=# INSERT INTO test (description) VALUES ('2');
INSERT 0 1
test=# SELECT * FROM test;
 id | description
----+-------------
  1 | 1
  3 | 2
(2 строки)
test=#
Видно что в поле id добавлено всего 2 записи, но при этом значение id типа SERIAL увеличилось не смотря на сработавший CONSTRAINT.
Вот хочу для себя понять, как это работает. И как правильней всего запретить id увеличиваться при срабатывании правил CONSTRAINT.
 
			
									
									
						 
		 
				
		
		 
	 
	
	artemn
 
                	
		
			
			
				
				
			
			
				- 
					
					Хостинг HostFood.ru
				
 
				-  
 
			
			
				
				Хостинг HostFood.ru
				
					Тарифы на хостинг в России, от 12 рублей: 
https://www.host-food.ru/tariffs/hosting/
					Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: 
https://www.host-food.ru/tariffs/virtualny-server-vps/
					Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
					
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
					Недорогие домены в популярных зонах: 
https://www.host-food.ru/domains/
				 
			 
						
						 
		 
	 
	 
	
		
	
		
		
		
			- 
				
								Neus							
 
						- майор
 			
		- Сообщения: 2016
 		- Зарегистрирован: 2008-09-08 21:59:56
 		
		
						
						
		
		
						
						
													
							
						
									
						Непрочитанное сообщение
					
								 Neus » 2015-10-27 18:25:20
			
			
			
			
			Все правильно работает.
Никак не запретишь, это автоинкрементное поле.
За подробностями в мануал или исходники.
			
									
									
						 
		 
				
		
		 
	 
	
	Neus