def copy_table(src_con, dst_con, src_table_name, dst_table_name, is_overwrite=True):
logger.debug(<EOL>"<STR_LIT>".format(<EOL>src_db=src_con.database_path,<EOL>src_tbl=src_table_name,<EOL>dst_db=dst_con.database_path,<EOL>dst_tbl=dst_table_name,<EOL>)<EOL>)<EOL>src_con.verify_table_existence(src_table_name)<EOL>dst_con.validate_access_permission(["<STR_LIT:w>", "<STR_LIT:a>"])<EOL>if dst_con.has_table(dst_table_name):<EOL><INDENT>if is_overwrite:<EOL><INDENT>dst_con.drop_table(dst_table_name)<EOL><DEDENT>else:<EOL><INDENT>logger.error(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>".format(src_table_name, dst_table_name)<EOL>)<EOL>return False<EOL><DEDENT><DEDENT>primary_key, index_attrs, _ = extract_table_metadata(src_con, src_table_name)<EOL>result = src_con.select(select="<STR_LIT:*>", table_name=src_table_name)<EOL>if result is None:<EOL><INDENT>return False<EOL><DEDENT>dst_con.create_table_from_data_matrix(<EOL>dst_table_name,<EOL>src_con.fetch_attr_names(src_table_name),<EOL>result.fetchall(),<EOL>primary_key=primary_key,<EOL>index_attrs=index_attrs,<EOL>)<EOL>return True<EOL>
Copy a table from source to destination.

:param SimpleSQLite src_con: Connection to the source database.
:param SimpleSQLite dst_con: Connection to the destination database.
:param str src_table_name: Source table name to copy.
:param str dst_table_name: Destination table name.
:param bool is_overwrite: If |True|, overwrite existing table.
:return: |True| if the copy operation succeed.
:rtype: bool
:raises simplesqlite.TableNotFoundError:
    |raises_verify_table_existence|
:raises ValueError:
    If attributes of the table are different from each other.