iga
Окт. 18, 2012 23:06:57
Всем привет. Есть такая задачка, нужно выдернуть строку из таблицы, удалить ее, и потом заинсертить заново с этими же данными.
Буду очень признателен за помощь
#!/usr/bin/env python# -*- coding: utf-8 -*-
import MySQLdb
def csv_to_sqls():
i = 0
file = open("delete.txt", "r")
file_w = open("deletedd.txt", "w")
conn = MySQLdb.connect (host = "localhost",
user = "root",
passed = "sss",
db = "yes")
cursor = conn.cursor ()
while 1:
line = file.readline()
if not line:
break
line = line.strip()
line = line.split(";")
sql = cursor.execute ("select * from user where id = {0}".format(line[0]))
sql = cursor.fetchone ()
sql = cursor.execute ("delete from user where id = {0}".format(line[0]))
## И вот здесь непонятно как перегнать все что выбрали из select в insert
sql = cursor.execute("insert into user values(%s)" % )
conn.commit()
file_w.write(str(sql) + '\n')
cursor.close ()
conn.close ()
file.close()
file_w.close()
csv_to_sqls()
[code]
Lexander
Окт. 18, 2012 23:41:42
Так может replace вместо delete, insert использовать?
iga
Окт. 19, 2012 01:06:42
Lexander
Так может replace вместо delete, insert использовать?К сожалению не получается из-за foreign keys.
masterito
Окт. 19, 2012 10:15:36
Можно поинтересоваться, а в чем смысл данного действия?
iga
Окт. 19, 2012 12:43:09
Нужно, что бы произошла “перерепликация” этих записей на слейв сервер, где их по некоторым причинам нет.
З.Ы. сделать дамп и развернуть заново нет возможности. Если у кого возникнет такой совет:)
masterito
Окт. 19, 2012 12:59:52
Можно попробовать создать временную таблицу, скопировать туда все содержимое текущей и очистить ее.
Ну а затем повторить все в обратном порядке и удалить временную таблицу.
masterito
Окт. 19, 2012 13:01:10
Либо на мастере сделать дамп, очистить таблицу и затем залить этот дамп.
iga
Окт. 19, 2012 13:20:53
Нельзя на местере делать дамп. Эта таблица уже давно такая “толстая”, что дамп лочит ее минут на 10, я уже молчу на сколько будет залочено при обратном процессе. Поэтому и получается велосипед.
masterito
Окт. 19, 2012 13:25:10
А storage engine для таблицы какой?
masterito
Окт. 19, 2012 13:31:20
P.S. Если не секрет, а что за приложение использует эту базу данных?