Я не уверен, как сказать это. Я немного смущен в данный момент, поэтому не стесняйтесь, пока я пытаюсь объяснить, у меня есть таблица со следующими полями:Приращение не уникального поля во время SQL-вставки
OrderLineID, OrderID, OrderLine, and a few other unimportant ones.
OrderLineID - это первичный ключ и всегда уникален (это не проблема), OrderID - это внешний ключ, который не является уникальным (также не является проблемой), а OrderLine - это значение, которое не является уникальным в таблица, но должна быть уникальной для любых идентификаторов OrderID, которые являются одинаковыми ... так что если это не имеет смысла, возможно, изображение ...
OrderLineID, OrderID, OrderLine
1 1 1
2 1 2
3 1 3
4 2 1
5 2 2
Для всех OrderID существует уникальная OrderLine. Я пытаюсь создать инструкцию insert, которая получает максимальное значение OrderLine для определенного OrderId, поэтому я могу увеличить его, но он работает не так хорошо, и я мог бы немного помочь. То, что я имею сейчас, ниже, я строю инструкцию SQL в программе и заменяю OrderID # фактическим значением. Я уверен, что проблема с вложенным оператором выбора, и увеличивающимся результатом, но я не могу найти какие-либо примеры, которые делают это, так как мои навыки Google слабыми, по-видимому ....
INSERT INTO tblOrderLine (OrderID, OrderLine) VALUES
(<OrderID #>, (SELECT MAX(OrderLine)
FROM tblOrderLine WHERE orderID = <same OrderID #>)+1)
Любой помощь будет будь красивой.
Почему вы храните в таблице порядковый номер? Лучше всего попытаться избежать такого зависимого поля в вашей схеме таблиц. Найдите в Google для нормализации советы по этому поводу. –
Правда, однако требуется, чтобы я использовал его, и я не контролирую его ... поэтому мне приходится с этим справляться. – phill
Фил, что «не работает так хорошо?» Вы получаете сообщение об ошибке? Ваш код работает для меня, когда я пытаюсь. – Jason