anonymous@RULINUX.NET~# Last login: 2024-11-23 05:33:57
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

задача, есть неизвестная база данных, надо её поглядеть

надо было отнавигарить неизвстную базу данных в постгрисе(на предмет того, что за таблица, её название, какие поля, сколько их, тип записи и т.п.), сделал такой селект, вывело все что можно

select t.table_name, c.column_name, c.data_type FROM information_schema.TABLES t JOIN information_schema.COLUMNS c ON t.table_name::text = c.table_name::text WHERE t.table_schema::text = 'public'::text AND t.table_catalog::name = current_database() AND t.table_type::text = 'BASE TABLE'::text AND NOT "substring"(t.table_name::text, 1, 1) = '_'::text ORDER BY t.table_name, c.ordinal_position;

запрос в базу по всем её таблицам. крутая штука, сразу все знаю. не надо писать длинные письма в саппорт девелоперам на предмет того, что да где, да куда да как

vilfred(*) (2016-08-13 16:02:40)

Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0

[Ответить на это сообщение]
avatar
Скрыть

Re:задача, есть неизвестная база данных, надо её поглядеть

perl

#!/usr/bin/perl

use DBI;
use strict;
my $dbh = DBI->connect("dbi:Pg:dbname=imdata","postgres","", {PrintError => 0});

if ($DBI::err != 0) {
   print $DBI::errstr . "\n";
   exit($DBI::err);
}

# запрос всех таблиц и их полей в базе imdata
my $query=qq~select t.table_name, c.column_name, c.data_type FROM information_schema.TABLES t JOIN information_schema.COLUMNS c ON t.table_name::text = c.table_name::text WHERE t.table_schema::text = 'public'::text AND t.table_catalog::name = current_database() AND t.table_type::text = 'BASE TABLE'::text AND NOT "substring"(t.table_name::text, 1, 1) = '_'::text ORDER BY t.table_name, c.ordinal_position;~;

my $sth = $dbh->prepare($query);
my $rv = $sth->execute();
if (!defined $rv) {
  print "При выполнении запроса '$query' возникла ошибка: " . $dbh->errstr . "\n";
  exit(0);
}

while (my @array = $sth->fetchrow_array()) {
  foreach my $i (@array) {
    print "$i\t";
  }
  print "\n";
}

$sth->finish();
$dbh->disconnect();


 

vilfred(*)(2016-08-13 16:08:04)

Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0
avatar
Скрыть

Re:задача, есть неизвестная база данных, надо её поглядеть

Не проще её админкой открыть, если не cli, хотя бы pgadmin или подобным.

Dr.uid(*)(2016-08-13 16:09:27)

Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0
avatar
Скрыть

Re:задача, есть неизвестная база данных, надо её поглядеть

наверное. проще, но у меня только шеллдсуп был.

и еще не знаю, работает ли этот слелект(нашел в сети его) на рекурсивные таблицы, типа в таблице в её элементе еще таблица, а в ней еще таблица, и так далее как в притче,

у попа была собака, он её любил, она съела кусок мяса, он её убил, и на камне написал, у попа была собака, он её любил...

Ого, этож явный пример рекурсии еще за 300 лет до изобретения самого первого языка программирования

короче, у меня тут счас происходит свободный полет мысли над дождливым пасмурным штормящим морем на предмет отслеживания громов и молний во внезапно возникшую бурю...

vilfred(*)(2016-08-13 16:14:09)

Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0
avatar
Скрыть

Re:задача, есть неизвестная база данных, надо её поглядеть

А чем плохо получение информации через стандартные \d и прочее?

SystemV(*)(2016-08-13 17:53:58)

Mozilla/5.0 (X11; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0
avatar
Скрыть

Re:задача, есть неизвестная база данных, надо её поглядеть

наверное, ничем =)

vilfred(*)(2016-08-13 20:07:20)

Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!