#!/usr/bin/perl use strict; use warnings FATAL => 'all'; use DBI; my $dbi_info = 'dbi:Pg:dbname=postgres;host=localhost;port=5432'; my $db_username = 'postgres'; my $db_password = '0000'; my $request_create_table = q( CREATE TABLE IF NOT EXISTS message ( created TIMESTAMP (0) WITHOUT TIME ZONE NOT NULL, id VARCHAR NOT NULL, int_id CHAR(16) NOT NULL, str VARCHAR NOT NULL, status BOOL, CONSTRAINT message_id_pk PRIMARY KEY(ID) ); CREATE INDEX IF NOT EXISTS message_created_idx ON message (created); CREATE INDEX IF NOT EXISTS message_int_id_idx ON message (int_id); CREATE TABLE IF NOT EXISTS log ( created TIMESTAMP (0) WITHOUT TIME ZONE NOT NULL, int_id CHAR(16) NOT NULL, str VARCHAR, address VARCHAR ); CREATE INDEX IF NOT EXISTS log_address_idx ON log USING hash (address) ); sub create_tables { my $dbh = shift; $dbh->do($request_create_table); return 1; } my $dbh = DBI->connect( $dbi_info, $db_username, $db_password, { postgres_enable_utf8 => 1, RaiseError => 1 } ); create_tables($dbh);