let insert_table = fun db ~name ~comment ~logged ->
    validate_name_exn name;
    match table_by_name_opt db name with
      | None -> let table = { ta_name    = name;
                              ta_comment = comment;
                              ta_db      = db;
                              ta_columns = [];
                              ta_logged  = logged ;
                              ta_pkey    = []; }
        in
          db.db_tables <- db.db_tables @ [table];
          table
      | Some _ ->
          raise (Duplicated_name name)