Method: IBRuby::InterBaseTable#rename_table

Defined in:
lib/ibmeta.rb

#rename_table(conn, ntable_name) ⇒ Object



234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
# File 'lib/ibmeta.rb', line 234

def rename_table(conn, ntable_name)
  new_table_name = ntable_name.to_s.upcase
  
  if @loaded.nil? or !@loaded
    load(conn)
  end
  
  old_table_name = @name
  load(conn)  # load the definition
  @name = new_table_name
  to_sql(:SQL_TABLE).each() {|sql| conn.execute_immediate(sql) }
  # copy all the data across
  conn.execute_immediate( "insert into #{new_table_name} select * from #{old_table_name}")
  to_sql(:SQL_PRIMARY_KEYS).each() {|sql| conn.execute_immediate(sql) }
  to_sql(:SQL_FOREIGN_KEYS).each() {|sql| conn.execute_immediate(sql) }
  @indices.each() do |index| 
    index.remove_index(conn)
    index.table = new_table_name
    index.create_index(conn)
  end
  @name = old_table_name
  drop_table(conn)
end