Найти - Пользователи
Полная версия: MySQL select to insert
Начало » Базы данных » MySQL select to insert
1 2
iga
Всем привет. Есть такая задачка, нужно выдернуть строку из таблицы, удалить ее, и потом заинсертить заново с этими же данными.
Буду очень признателен за помощь

#!/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
Так может replace вместо delete, insert использовать?
iga
Lexander
Так может replace вместо delete, insert использовать?
К сожалению не получается из-за foreign keys.
masterito
Можно поинтересоваться, а в чем смысл данного действия?
iga
Нужно, что бы произошла “перерепликация” этих записей на слейв сервер, где их по некоторым причинам нет.
З.Ы. сделать дамп и развернуть заново нет возможности. Если у кого возникнет такой совет:)
masterito
Можно попробовать создать временную таблицу, скопировать туда все содержимое текущей и очистить ее.
Ну а затем повторить все в обратном порядке и удалить временную таблицу.
masterito
Либо на мастере сделать дамп, очистить таблицу и затем залить этот дамп.
iga
Нельзя на местере делать дамп. Эта таблица уже давно такая “толстая”, что дамп лочит ее минут на 10, я уже молчу на сколько будет залочено при обратном процессе. Поэтому и получается велосипед.
masterito
А storage engine для таблицы какой?
masterito
P.S. Если не секрет, а что за приложение использует эту базу данных?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB