В Python 2
from sys import stdout
array = ['a', 'b', 'c']
for i in array:
stdout.write(i)
В Python 3 становится легко
for i in array:
print(i, end='')
Для более низких версий
from __future__ import print_function
for i in array:
print(i, end="")
Также используется join
print(''.join(array))
Отвечая на свой вопрос, я не смог найти более простого способа сделать это. В итоге я отбросил все ограничения внешнего ключа, изменил типы полей и затем снова добавил все ограничения внешнего ключа.
Как заметил Р. Бемроуз, использование SET foreign_key_checks = 0;
помогает только при добавлении или изменяет данные, но не разрешает команды ALTER TABLE
, которые нарушили бы ограничения внешнего ключа.
Чтобы узнать о использование ограничений внешнего ключа, выполните следующий запрос к базе данных INFORMATION_SCHEMA
:
select distinct table_name,
column_name,
constraint_name,
referenced_table_name,
referenced_column_name
from key_column_usage
where constraint_schema = 'XXX'
and referenced_table_name is not null
and referenced_column_name is not null;
Замените XXX
на имя вашей схемы. Это даст вам список таблиц и столбцов, которые ссылаются на другие столбцы как внешние ключи.
К сожалению, изменения схемы не являются транзакционными, поэтому я боюсь, что вам действительно придется временно отключить foreign_key_checks для этой операции. Я рекомендую - по возможности - предотвращать соединения с любыми клиентами на этом этапе, чтобы минимизировать риск случайных нарушений ограничений.
Что касается самих ключей: их необходимо будет отбрасывать и создавать заново, когда вы изменили данные таблицы. типы.
К сожалению, изменения схемы не являются транзакционными, поэтому я боюсь, что вам действительно придется временно отключить foreign_key_checks для этой операции. Я рекомендую - по возможности - предотвращать соединения с любыми клиентами на этом этапе, чтобы минимизировать риск случайных нарушений ограничений.
Что касается самих ключей: их необходимо будет отбрасывать и создавать заново, когда вы изменили данные таблицы. типы.
К сожалению, изменения схемы не являются транзакционными, поэтому я боюсь, что вам действительно придется временно отключить foreign_key_checks для этой операции. Я рекомендую - по возможности - предотвращать соединения с любыми клиентами на этом этапе, чтобы минимизировать риск случайных нарушений ограничений.
Что касается самих ключей: их необходимо будет отбрасывать и создавать заново, когда вы изменили данные таблицы. типы.
Вы можете временно отключить внешние клавиши, набрав
SET foreign_key_checks = 0;
и включить их
SET foreign_key_checks = 1;
. Я думаю, что для этого требуются права администратора, поскольку он предназначен для импорта данных в базу данных.
Редактировать : В ответ на ваше редактирование похоже, что он отключает ограничения только для операторов DML (вставка, обновление, удаление), но не для операторов DDL (таблица изменений, таблица удаления) и т.д ...).
Если вы можете остановить базу данных, попробуйте выгрузить таблицы в текстовый файл, вручную изменить определение столбцов в файле и импортировать таблицы обратно.