1. ホーム
  2. データベース
  3. その他のデータベース

gaussDBデータベース共通操作コマンド詳細

2022-01-17 01:29:24

GaussDBコマンドライン接続

                1.1 ホストへの ssh 接続、IP: 192.168.28.178, ユーザー名: root, パスワード: Huawei @123

                1.2 binディレクトリに移動し、cd /home/gaussdba/app/bin

                1.3 ユーザーをgaussdbaに変更、su gaussdba

                1.4 gaussDbに接続する、gsql -d postgres -p 5432

基本操作コマンド

                \Ÿ 全てのデータベースを一覧表示する

                \データベースの切り替え

                \現在のデータベースの下にあるテーブルを一覧表示します。

                \指定されたテーブルのすべてのフィールドを一覧表示します。

                \指定したテーブルの基本情報を表示します。

                \現在のデータベースの下にあるすべてのスキーマ情報を表示します。

                SHOW search_path; 現在使用されているスキーマを表示します。

                SET search_path TO myschema; 現在のスキーマをトグルします。

                \ログインを終了します。

gaussDBへのmysqlデータ移行

    1. mysqlのデータをエクスポートする

show variables like '%secure%' to find the secure_file_priv address.

                secure_file_privのアドレスにaaaをmkdirします。

                ファイルのパーミッションを変更する chmod -R 777 aaa.

select * from i18n_message into outfile '/tmp/etl/temp.dat' fields terminated by ''';

    2. データをダウンロードし、GaussDbサーバーにアップロードする。

    3. gaussDbをインポートする

COPY I18N_MESSAGE FROM '/home/gaussdba/app/bin/temp.dat' WITH DELIMITER '''';

gaussDbの切り替えで発生した問題

1. 実行中に次のエラーが発生しました: 列 "TASK.TASK_ID" が GROUP BY 節に現れるか、集約関数で使用されなければなりません , 理由

                は:SELECTのフィールドとGROUP BYのフィールドは、一貫性のあるまたは矛盾する集約関数で使用する必要があります。

        2. MySQLのifnull関数がnvl関数に置き換えられる。

        3. limit 0,10 ---------->limit 10 offset 0.

        4. find_in_set(operator, '1096,789') ---------->operator ~ concat(', replace('1096,789', ',', '|'), ')').

        5. uuid()はサポートされていませんので、UUID関数をカスタマイズしてください。

CREATE OR REPLACE FUNCTION UUID() 

                RETURNS TEXT AS $$

                BEGIN

                    RETURN to_number(now()::text,'999999999999999999999999999999999999999999999999999999999999');

                END;

               $$ LANGUAGE plpgsql;

                ALTER FUNCTION UUID() OWNER TO GAUSSDBA;

        6. 文字列はダブルクォート "" で囲むことはできず、シングルクォート '' のみで囲みます。SELECT "" as local_path ----------->SELECT ''as local_path

        7. INSERT INTO ON DUPLICATE KEY ------------>REPLACE INTO

        8.ファジー・クエリ、LIKE:大文字小文字を区別、ILIKE:大文字小文字を区別、MySQLのクエリはデフォルトで大文字小文字を区別しないので、ILIKEに置き換えることができる。

        9. GaussDB は null と null 文字 '' を同じと見なし、a='' のような null 文字の判定をサポートしないので、a は null と記述しなければなりません。

        10. 例えば、CHARは固定長で、スペースを埋めるのに不十分であり、VARCHARタイプは比較時に問題が発生します。

        11.シングルクォート'エスケープ、別の''をエスケープするためにシングルクォートを使用する、例えば、xi''an

以上でgaussDBデータベースコマンドの解説を終了します。gaussDBデータベースコマンドの詳細については、BinaryDevelopの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。