Move the data up to the next row in a database - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Move the data up to the next row in a database (/thread-4389.html) |
Move the data up to the next row in a database - chris0147 - Aug-12-2017 Hi all, I need some help with my code, I am using the code to write data to input them in the database where I will move the data down from the same row as the other data. Example: ======================================================= name | start_date | stop_date | program_id | programme_title | ======================================================= channel 1 3001 some name 1 channel 1 3002 some name 2 channel 1 3003 some name 3 Here is what it will move the program_id to the next row that go down: ======================================================= name | start_date | stop_date | program_id | programme_title | ======================================================= channel 1 some name channel 1 3001 some name 2 channel 1 3002 some name 3 This is the code I use: def update_in_database(self): profilePath = xbmc.translatePath(os.path.join('special://userdata/addon_data/script.tvguide', 'source.db')) conn = database.connect(profilePath) cur = conn.cursor() program_id = ''.join(str(x) for x in self.program_id) cur.execute('SELECT channel, program_id FROM programs') data = cur.fetchone() if data is not None: value = program_id for i in range(0,10): if value == program_id: cur.execute("UPDATE programs set program_id=? WHERE program_id=?",('',value)) else: cur.execute("UPDATE programs set program_id=? WHERE program_id=?",(value-1,value)) value = int(value) + 1 cur.execute("SELECT channel , stop_date FROM programs WHERE program_id=?;",(value-2,)) data = cur.fetchone() try: cur.execute("UPDATE programs set program_id=? WHERE channel=? and start_date=? ",(value-1,data[0],data[1])) except: pass conn.commit() conn.close()I want to know how I can move the data up in the opposite than the code I use as I want to move the data up? Example: ======================================================= name | start_date | stop_date | program_id | programme_title | ======================================================= channel 1 some name channel 1 3001 some name 2 channel 1 3002 some name 3 Here is what it will move the program_id to the next row that go up: ======================================================= name | start_date | stop_date | program_id | programme_title | ======================================================= channel 1 3001 some name 1 channel 1 3002 some name 2 channel 1 3003 some name 3 Do you know how I could do that? RE: Move the data up to the next row in a database - nilamo - Aug-13-2017 Are they always sequential like that? Because I think just writing sql will replace the entire python snippet: update programs set program_id=program_id-1
|