Ответы пользователя по тегу PostgreSQL
  • Как в bat файле передать несколько команд через pipe?

    @gsaw Автор вопроса
    Ах, перерисал как

    psql -h %DBHOST% -p %DBPORT% -U %USERNAME% -d %DBNAME% -a -n ^
        -c "\copy (select * from part_manager.deltaresultstart) to '%CSVDIR%\part_manager.deltaresultstart.dump' with (format binary);" ^
        -c "\copy (select * from part_manager.vehicledataresult) to '%CSVDIR%\part_manager.vehicledataresult.dump' with (format binary);"


    Так тоже работает
    Ответ написан
    Комментировать
  • Можно ли подключиться через pgAdmin к openserver?

    @gsaw
    Вы видимо не совсем понимаете как работает клиент серверная архитектура. База данных это сервер, а phpAdmin это клиент. Обычно к серверу базы данных подключаются по сети. Тоесть теоретически можно подключиться и со своего компьютера к базе данных на сервере. Если вы знаете как. Но обычно, серевер базы данных конфигурируется так, что вы только можете подключится клиентом, который работает на том же хосте. Судя по вашему описанию, вы не сами его настраивали и лучше пока вам это самому не делать.

    Самое простое в вашем случае и дальше использовать phppgAdmin предоставляемым хостером.

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


    Вы учитесь работать с базой данных не мышкой, а набирая команды. Разберитесь, что такое DDL и DML и тогда вам откроется чудесный мир баз данных. Где вы сможете делать что угодно в каком угодно клиенте. Если нет каких то типов данных, то наверняка есть их аналоги, которые просто по другому зовутся.

    primary и foreign keys это вообще стандарт и есть в любой базе данных. Для автоинкримента вам возможно понадобится sequence.

    https://info-comp.ru/what-is-ddl-dml-dcl-tcl
    https://postgrespro.ru/docs/postgrespro/10/datatype
    mech.math.msu.su/~shvetz/54/inf/databases/chSerial...
    Ответ написан
    1 комментарий
  • Можно ли в sql сделать поле isactive, чтобы активной единовременно могла быть только одна запись?

    @gsaw
    Ничего такого специального нету. База данных только свалка данных. Ты можешь указать по каким правилам их туда сваливать, но логику твоего приложения база данных не знает и лучше если не узнает. Так как тогда привяжешься навсегда к одному вендору.

    А в данном случае можно обойтись одним запросом к базе, если я правильно понял. Типа того

    update mytable set isactive = case when id = :active_id then 1 else 0 end where search_criteria = :filter


    active_id это уникальный ключ, если id записи совпадает с заданным active_id, то isactive будет установленно в 1, для всех остальных записей удвлетворяющих условию в 0.
    Ответ написан