Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Помощь с запросом  [new]
Angel_19
Member

Откуда:
Сообщений: 38
Нужна помощь с запросом.
Есть такой запрос:
insert into POSNUM.dbo.Traffic (SensorID, DateCreated, RealIn, RealOut, RealPass, OptionID) SELECT SensorID=1, DateCreated, RealIn, RealOut, RealPass, OptionID FROM [TEST].[dbo].[Traffic] where SensorID=9 and DateCreated<'16.02.2015'


Но в исходной таблице TEST в колонках DateCreated есть одинаковые значения, и SQL студия ругается:
автор
Нарушение "IX_TRAFFIC" ограничения UNIQUE KEY. Не удается вставить повторяющийся ключ в объект "dbo.Traffic". Повторяющееся значение ключа: (1, июл 22 2014 10:44AM).
Выполнение данной инструкции было прервано.


Как изменить запрос, чтобы вставить с дублями. Колонка DateCreated не является уникальной.
17 фев 15, 09:52    [17274846]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Angel_19
Как изменить запрос, чтобы вставить с дублями.

С дублями - никак.
Ваш SELECT должен выбирать только такие записи, которые не нарушают ограничения UNIQUE KEY "IX_TRAFFIC"
17 фев 15, 09:54    [17274856]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Angel_19
Member

Откуда:
Сообщений: 38
Не совсем понимаю в SQL пока еще...

Но проблема именно в столбце DateCreated , там встречаются одинаковые.
17 фев 15, 10:04    [17274895]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Angel_19
Но проблема именно в столбце DateCreated , там встречаются одинаковые.

Проблема пока в том, что вы вообще не в курсе, как выглядит ваш UNIQUE KEY "IX_TRAFFIC"
17 фев 15, 10:05    [17274898]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Angel_19
Member

Откуда:
Сообщений: 38
Как же в таблице оказалось несколько уникальных значений если они уникальные?

Убрал уникальность для связки полей и данные вставились.
17 фев 15, 10:31    [17275025]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Angel_19,

мдя.... вы вообще ведатет что делате ? Иили так наугад.....
17 фев 15, 10:33    [17275031]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Angel_19
Как же в таблице оказалось несколько уникальных значений если они уникальные?

Убрал уникальность для связки полей и данные вставились.
Вас надо бить по рукам.
Отойдите от сервера подальше!
Хотя, поздно уже
17 фев 15, 10:35    [17275039]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Angel_19
Как же в таблице оказалось несколько уникальных значений если они уникальные?

В таблице их как раз не оказалось.
Потому что сервер вам не дал выполнить запрос.

Angel_19
Убрал уникальность для связки полей и данные вставились.

Тогда уж и все другие уберите. Вдург они тоже начнут мешать и путаться под ногами
17 фев 15, 10:37    [17275054]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Angel_19
Member

Откуда:
Сообщений: 38
Спокойно.
Я базу забэкапил перед внесением изменений.
17 фев 15, 10:38    [17275059]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Angel_19
Спокойно.

Да мы то спокойны.
Беспокоиться надо пользователмя вашей базы. За свои данные. Сейчас вы им надобаляете Траффика на Сенсоры
17 фев 15, 10:40    [17275075]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Angel_19
Member

Откуда:
Сообщений: 38
Похоже ПО которое пишет данные в базу, вносило данные и уникальность полей ей не мешала...
Иначе как объяснить дубли?
17 фев 15, 10:41    [17275084]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Angel_19
Иначе как объяснить дубли?

Еще раз.
В таблице НЕ БЫЛО дублей.
Это вы своим запросом пытались их создать.
17 фев 15, 10:43    [17275092]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Angel_19
Похоже ПО которое пишет данные в базу, вносило данные и уникальность полей ей не мешала...
Иначе как объяснить дубли?
Какие-такие дубли??
Констрейнт не давал вставить уникальные комбинации из нескольких полей!
При этом отдельно взятое поле DateCreated не обязано было быть уникальным.
А теперь будет вообще чёрт знает что...
17 фев 15, 10:44    [17275097]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Angel_19
Member

Откуда:
Сообщений: 38
В исходной таблице, откуда я брал данные для вставки были дубли.

SELECT SensorID=1, DateCreated, RealIn, RealOut, RealPass, OptionID FROM [TEST].[dbo].[Traffic] where SensorID=9 and DateCreated<'16.02.2015'

После этого запроса в столбце DateCreated было очень много дублей, и вот они в конечную таблицу из-за уникальности не вставлялись. Но несмотря на "уникальность" в исходной таблице если шли дубли, то у этих дублей в других колонках данные отличались, т.е. это были не просто пустышки.
17 фев 15, 10:53    [17275168]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Angel_19
После этого запроса в столбце DateCreated было очень много дублей,

А почему вы считаете, что UNIQUE KEY "IX_TRAFFIC" создан только для DateCreated ?

Angel_19
Но несмотря на "уникальность" в исходной таблице если шли дубли, то у этих дублей в других колонках данные отличались, т.е. это были не просто пустышки.

Ваши рассуждения смешны. Потому что показывают вашу безграмотность.
Не надо рассуждать о том, чего вы не знаете
17 фев 15, 10:54    [17275188]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Angel_19
Member

Откуда:
Сообщений: 38
В целом все в порядке, данные поступают в таблицу, отчеты строятся.

С одной торговой точки данные поступают через интернет, проблема возможно в этом - данные идут не так быстро, или несколько приходят одновременно.
17 фев 15, 10:57    [17275197]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
По-моему, Angel_19 разговаривает не с нами, а как-то параллельно
17 фев 15, 10:58    [17275206]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Angel_19
В целом все в порядке, данные поступают в таблицу, отчеты строятся.

С одной торговой точки данные поступают через интернет, проблема возможно в этом - данные идут не так быстро, или несколько приходят одновременно.

Ну все, пропал дом ! Что будет с паровым отоплением ? (с) х/ф Собачье сердце
17 фев 15, 10:59    [17275210]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Angel_19
Member

Откуда:
Сообщений: 38
[quot Glory]
Angel_19
После этого запроса в столбце DateCreated было очень много дублей,

А почему вы считаете, что UNIQUE KEY "IX_TRAFFIC" создан только для DateCreated ?

Я посмотрел: UNIQUE KEY "IX_TRAFFIC" , это комбинация SensorID и DateCreated. Т.е. в один момент времени (DateCreated) с одного сенсора (SensorID).
17 фев 15, 10:59    [17275215]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Angel_19
посмотрел: UNIQUE KEY "IX_TRAFFIC" , это комбинация SensorID и DateCreated.

А вы понимаете, что это такое ?
А вы проверили, что были дубли по этой комбинации ?
17 фев 15, 11:00    [17275224]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Angel_19
Member

Откуда:
Сообщений: 38
Не глумились бы, а помогли.

Кто-то работает только с SQL - у него это основной хлеб и он знает про это очень много + много опыта, кто-то вынужден заниматься всем сразу. Таковы реалии жизни. Да и данные не так уж важны, можно и потренироваться на них, к тому же есть два бэкапа данных.
17 фев 15, 11:04    [17275250]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Angel_19
Member

Откуда:
Сообщений: 38
Glory
Angel_19
посмотрел: UNIQUE KEY "IX_TRAFFIC" , это комбинация SensorID и DateCreated.

А вы понимаете, что это такое ?
А вы проверили, что были дубли по этой комбинации ?


Проверил с помощью другого запроса.

select Field, count(*) from table
group by Field
having count(*) > 1
17 фев 15, 11:06    [17275260]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31950
Angel_19
А почему вы считаете, что UNIQUE KEY "IX_TRAFFIC" создан только для DateCreated ?

Я посмотрел: UNIQUE KEY "IX_TRAFFIC" , это комбинация SensorID и DateCreated. Т.е. в один момент времени (DateCreated) с одного сенсора (SensorID).
Дык про это вам и говорят.

Ваша прога (из за ошибки в самой проге) вставляла неуникальную комбинацию полей "SensorID и DateCreated"
Умный сервер (которому сказал это делать умный проектировщик БД) не позволял вставлять эти ошибочные данные.

А вы это ограничекние убрали. И теперь кривая прога буде вставлять кривые данные. Сейчас всё работает (а чего бы не этому работать?), но данные уже в базе будут неправильные, отчёты кривые, бакап восстановить будет нельзя (потому что будет жалко данных, которые навставляются за месяц работы, прежде чем это обнаружится), короче, "все, пропал дом!"
17 фев 15, 11:06    [17275261]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Angel_19
Не глумились бы, а помогли.

Чем ?
Если вы не понимаете, что такое UNIQUE KEY и откуда у вас появились дубли

Angel_19
Кто-то работает только с SQL - у него это основной хлеб и он знает про это очень много + много опыта, кто-то вынужден заниматься всем сразу. Таковы реалии жизни. Да и данные не так уж важны, можно и потренироваться на них, к тому же есть два бэкапа данных.

Что то мне подсказывает, что то, что вы называет бэкапом базы, может оказаться совсем непригодным для отмены ваших улучшений базы.
17 фев 15, 11:07    [17275269]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с запросом  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31950
Angel_19
Проверил с помощью другого запроса.

select Field, count(*) from table
group by Field
having count(*) > 1
А теперь
select SensorID, DateCreated, count(*) from table
group by SensorID, DateCreated
having count(*) > 1
17 фев 15, 11:07    [17275272]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить