Task7/create_log_in_table/create_table.pl

43 lines
1 KiB
Perl
Raw Normal View History

2023-11-08 14:23:03 +03:00
#!/usr/bin/perl
use strict;
use warnings FATAL => 'all';
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 } );
print( create_tables($dbh) );