перенумеруйте первичный ключ

hxs = HtmlXPathSelector(response)    #response is already in Selector, use direct `response.xpath`

url = urllib.parse.urljoin(response.url, url)

использовать как:

url = response.urljoin (url)

да, он будет остановлен как повторяющийся запрос к prev URL, вам нужно добавить dont_filter=True проверить

8
задан Guido 23 October 2008 в 15:25
поделиться

6 ответов

Я добавил бы другой столбец к таблице сначала, заполнил бы это с новым PK.

Затем я использовал бы операторы обновления для обновления новых fk полей во всех связанных таблицах.

Затем можно отбросить старый PK и старые fk поля.

Править: Да, как Ian говорит, необходимо будет отбросить и затем воссоздать все ограничения внешнего ключа.

14
ответ дан 5 December 2019 в 07:13
поделиться

Не уверенный, который DBMS Вы используете, но если это, оказывается, SQL Server:

SET IDENTITY_INSERT [MyTable] ON

позволяет Вам обновлять/вставлять столбец первичного ключа. Затем, когда Вы сделаны, обновив ключи (Вы могли использовать КУРСОР для этого, если логика является сложной),

SET IDENTITY_INSERT [MyTable] OFF

Надежда, которая помогает!

6
ответ дан 5 December 2019 в 07:13
поделиться

Почему Вы даже обеспокоились бы? Смысл противооснованных первичных ключей "идентификационных данных" - то, что числа произвольны и бессмысленны.

1
ответ дан 5 December 2019 в 07:13
поделиться

Это может или не быть MS конкретный SQL, но: TRUNCATE TABLE сбрасывает счетчик идентификационных данных, таким образом, один способ сделать это быстрое и грязное должно было бы 1) Сделать Резервное копирование 2) содержание таблицы Copy для временной работы таблицы: 3) содержание таблицы временного файла Копии назад к таблице (который имеет столбец идентификационных данных):

SELECT Field1, Field2 INTO #MyTable FROM MyTable

TRUNCATE TABLE MyTable

INSERT INTO MyTable
(Field1, Field2)
SELECT Field1, Field2 FROM #MyTable

SELECT * FROM MyTable
-----------------------------------
ID    Field1    Field2
1     Value1    Value2
2
ответ дан 5 December 2019 в 07:13
поделиться

Если это - SQL Server Microsoft, одна вещь, которую Вы могли бы сделать, использовать [dbcc checkident] (http://msdn.microsoft.com/en-us/library/ms176057 (SQL.90) .aspx)

Предположите, что у Вас есть единственная таблица, в которой Вы хотите переместить данные наряду с изменением нумерации первичных ключей. Для примера названием таблицы является ErrorCode. Это имеет два поля, ErrorCodeID (который является первичным ключом), и Описание.

Пример кода Используя dbcc checkident

-- Reset the primary key counter
dbcc checkident(ErrorCode, reseed, 7000)

-- Move all rows greater than 8000 to the 7000 range
insert into ErrorCode
select Description from ErrorCode where ErrorCodeID >= 8000

-- Delete the old rows
delete ErrorCode where ErrorCodeID >= 8000

-- Reset the primary key counter
dbcc checkident(ErrorCode, reseed, 8000)

С этим примером Вы будете эффективно перемещать все строки в другой первичный ключ и затем сбрасывать так следующую вставку, берет 8 000 идентификаторов.

Надежда это помогает немного!

-1
ответ дан 5 December 2019 в 07:13
поделиться

Вы могли сделать это в следующих шагах:

  • создайте копию yourTable с дополнительным столбцом new_key
  • заполните copyOfYourTable с затронутыми строками от yourTable наряду с требуемыми значениями new_key
  • временно отключите ограничения
  • обновите все связанные таблицы для указания на значение new_key вместо old_key
  • удалите затронутые строки из yourTable
  • IDENTITY_INSERT [yourTable] НАБОРА НА
  • вставьте затронутые строки снова с новым собственным значением ключа (от, копируют таблицу),
  • IDENTITY_INSERT [yourTable] НАБОРА ПРОЧЬ
  • пересейте идентификационные данные
  • повторно включите ограничения
  • удалите copyOfYourtable

Но поскольку другие сказали весь, что работа не нужна. Я склонен смотреть на первичные ключи типа идентификационных данных, как будто они были эквивалентны из указателей в C, я использую их, чтобы сослаться на другие объекты, но никогда не изменять доступа их явно

1
ответ дан 5 December 2019 в 07:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: