質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • MySQL

    5869questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • SQL

    2398questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

sql:複数レコードを塊として、IDを後から振りたい

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 600

TomoKubota

score 43

*WordPressのContactFormDBというプラグインで使用されるテーブルを前提として質問させていただきます。

テーブル構成は以下の通りです。
mysql> DESC wp_cf7dbplugin_submits;
+-------------     +---------------     +------+-----+---------+-------+
| Field            | Type              | Null | Key | Default | Extra |
+-------------     +---------------     +------+-----+---------+-------+
| submit_time  | decimal(16,4) | NO   | MUL | NULL    |       |
| form_name   | varchar(127)  | YES  | MUL | NULL    |       |
| field_name    | varchar(127)  | YES  | MUL | NULL    |       |
| field_value    | longtext         | YES  |     | NULL    |       |
| field_order    | int(11)           | YES  |     | NULL    |       |
| file               | longblob        | YES  |     | NULL    |       |
+-------------     +---------------     +------+-----+---------+-------+

WordPressのフォームを送信すると、
1.送信時刻
2.フォーム名
3.フィールド名
をキーとして、各フィールドごとにレコードが作成されます。
単純に説明すると、3つのフィールドを持つフォームで送信を行うと、
3つのレコードが作成されることになります。

このテーブルに新たに「ID」というフィールドを追加したとして、
1回の送信ごとに(上記の例で言えば3レコードを一つの塊として)、
ユニークな数値を振っていきたいと思っています。

このような処理を、バッチ処理で1日一回行おうとした場合に、
どのようなSQLを実行することで可能になりますでしょうか。

DBはmysql、
OSはCentos6.5です。

よろしくお願いいたします。

追記
この質問を記入させていただく時点では、
ストアドファンクション(テーブルをロックしたくないので)を作成し、
IDがnullのレコードを上記3つのキーごとにグループ化してcountし、
whileを使ってループするような感じで行けるのかな、
くらいの認識ではおります。

ただ、ストアドファンクションは書いたことがなく、
もしこれを使用する場合には、この点も考慮していただくと大変ありがたいです。

追記2 show indexの結果です
mysql> SHOW INDEX FROM wp_cf7dbplugin_submits;
+------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table                  | Non_unique | Key_name | Seq_in_index | Column_name |Collation  | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| wp_cf7dbplugin_submits |          0 | PRIMARY  |            1 | submit_time |A          |         173 |     NULL | NULL   |      | BTREE      |         |               |
| wp_cf7dbplugin_submits |          0 | PRIMARY  |            2 | form_name   |A          |         173 |     NULL | NULL   |      | BTREE      |         |               |
| wp_cf7dbplugin_submits |          0 | PRIMARY  |            3 | field_name  |A          |        1038 |     NULL | NULL   |      | BTREE      |         |               |
+------------------------+------------+----------+--------------+-------------+-----------+-------------+

追記3 質問の一部を修正させていただきます。
すみません、やりたいことが明確になっておらず、質問の内容を変えさせていただくことになってしまいました。

上記テーブル構造で、
現状、投稿時間、フォーム名、フィールド名をキーとしており、
WordPressのフォームで投稿を行うと、そのフォームのフィールド数分、
レコードが作成されることとなります。
もし別にテーブルを一つ用意し、
フィールド名とその値を横持ち(RowではなくClmとして)するようにInsertしていくようなSQLを書きたいと考えています。

現在のテーブルに変換済みFLGのようなフィールドを持たせ、
上記インサート処理が終了したら、FLGをtrueにするようにして、
変換処理が完了しているかを確認できるようにしておきたいです。

ですのでやはりやりたいこととしては、
FLGが立っていないデータを塊ごとにselectし、
これをもとに一意のレコードを作成し、
別テーブルにinsertする、
というような流れになるかと思います。

上記内容をストアドファンクションで作成することになるのかな、
と思っています

回答への御礼
みなさま、ご回答に御礼申し上げます。
また返信が遅くなってしまった方については、申し訳ありません。
ベストアンサーについては大変迷ったのですが、
データを横持ちしたい、という当方の要望を正確にテストまで実行いただいた方とさせていただきました。

この度の質問では大変勉強になり、
お時間を割いてくださった方には、繰り返しになりますが、
本当にありがとうございました。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • KiyoshiMotoki

    2017/02/03 13:04

    もしくは、「データの塊ごとのフィールド数は一定」という前提で、構いませんか?

    キャンセル

  • TomoKubota

    2017/02/03 17:22

    フィールドの数は一定ですので、カラム数が変わることはございません。

    キャンセル

  • KiyoshiMotoki

    2017/02/03 21:40

    情報の追記、ありがとうございます。回答をご確認ください。

    キャンセル

回答 4

checkベストアンサー

+2

以下を前提に、回答させていただきます。

  • wp_cf7dbplugin_submits テーブルの全てのレコードの form_name カラムは、同じ値
  • wp_cf7dbplugin_submits テーブルの全てのレコードの field_name カラムの値は、field_1field_2field_3の 3種類のみ
  • wp_cf7dbplugin_submits テーブルの全てのレコードの form_name カラム, field_name カラムには、非NULL値が格納されている
  • wp_cf7dbplugin_submits テーブルには、「変換済みFLG」として is_normalized カラムを追加する(0 => 未変換, 1 => 変換済み)
  • 「フィールド名とその値を横持ち」するテーブルの定義は、以下の通り
CREATE TABLE normalized_wp_cf7dbplugin_submits (
  submit_time decimal(16,4) NOT NULL,
  form_name varchar(127),
  field_value_1 longtext,
  field_order_1 int(11),
  file_1 longblob,
  field_value_2 longtext,
  field_order_2 int(11),
  file_2 longblob,
  field_value_3 longtext,
  field_order_3 int(11),
  file_3 longblob,

  PRIMARY KEY (submit_time, form_name)
);

 回答

BEGIN;

INSERT INTO normalized_wp_cf7dbplugin_submits
SELECT
  t1.submit_time,
  t1.form_name,
  t1.field_value,
  t1.field_order,
  t1.file,
  t2.field_value,
  t2.field_order,
  t2.file,
  t3.field_value,
  t3.field_order,
  t3.file
FROM wp_cf7dbplugin_submits AS t1
INNER JOIN wp_cf7dbplugin_submits AS t2
  ON t1.submit_time = t2.submit_time AND t1.form_name = t2.form_name
INNER JOIN wp_cf7dbplugin_submits AS t3
  ON t1.submit_time = t3.submit_time AND t1.form_name = t3.form_name
WHERE t1.field_name = 'field_1' AND t1.is_normalized = 0
  AND t2.field_name = 'field_2' AND t2.is_normalized = 0
  AND t3.field_name = 'field_3' AND t3.is_normalized = 0
FOR UPDATE;

UPDATE wp_cf7dbplugin_submits SET is_normalized = 1 WHERE is_normalized = 0;

COMMIT;

実行結果

mysql> CREATE TABLE wp_cf7dbplugin_submits (
    ->   submit_time decimal(16,4) NOT NULL,
    ->   form_name varchar(127),
    ->   field_name varchar(127),
    ->   field_value longtext,
    ->   field_order int(11),
    ->   file longblob,
    -> 
    ->   PRIMARY KEY (submit_time, form_name, field_name)
    -> );
Query OK, 0 rows affected (0.02 sec)

mysql> INSERT INTO wp_cf7dbplugin_submits VALUES
    ->   (0.0, 'form', 'field_1', 'value_1_1', 1, 'file_1_1'),
    ->   (0.0, 'form', 'field_2', 'value_1_2', 2, 'file_1_2'),
    ->   (0.0, 'form', 'field_3', 'value_1_3', 3, 'file_1_3'),
    ->   (1.0, 'form', 'field_1', 'value_2_1', 1, 'file_2_1'),
    ->   (1.0, 'form', 'field_2', 'value_2_2', 2, 'file_2_2'),
    ->   (1.0, 'form', 'field_3', 'value_2_3', 3, 'file_2_3'),
    ->   (2.0, 'form', 'field_1', 'value_3_1', 1, 'file_3_1'),
    ->   (2.0, 'form', 'field_2', 'value_3_2', 2, 'file_3_2'),
    ->   (2.0, 'form', 'field_3', 'value_3_3', 3, 'file_3_3');
Query OK, 9 rows affected (0.00 sec)
Records: 9  Duplicates: 0  Warnings: 0

mysql> ALTER TABLE wp_cf7dbplugin_submits
    ->   ADD COLUMN is_normalized TINYINT UNSIGNED NOT NULL DEFAULT 0,
    ->   ADD INDEX (is_normalized);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM wp_cf7dbplugin_submits;
+-------------+-----------+------------+-------------+-------------+----------+---------------+
| submit_time | form_name | field_name | field_value | field_order | file     | is_normalized |
+-------------+-----------+------------+-------------+-------------+----------+---------------+
|      0.0000 | form      | field_1    | value_1_1   |           1 | file_1_1 |             0 |
|      0.0000 | form      | field_2    | value_1_2   |           2 | file_1_2 |             0 |
|      0.0000 | form      | field_3    | value_1_3   |           3 | file_1_3 |             0 |
|      1.0000 | form      | field_1    | value_2_1   |           1 | file_2_1 |             0 |
|      1.0000 | form      | field_2    | value_2_2   |           2 | file_2_2 |             0 |
|      1.0000 | form      | field_3    | value_2_3   |           3 | file_2_3 |             0 |
|      2.0000 | form      | field_1    | value_3_1   |           1 | file_3_1 |             0 |
|      2.0000 | form      | field_2    | value_3_2   |           2 | file_3_2 |             0 |
|      2.0000 | form      | field_3    | value_3_3   |           3 | file_3_3 |             0 |
+-------------+-----------+------------+-------------+-------------+----------+---------------+
9 rows in set (0.00 sec)

mysql> CREATE TABLE normalized_wp_cf7dbplugin_submits (
    ->   submit_time decimal(16,4) NOT NULL,
    ->   form_name varchar(127),
    ->   field_value_1 longtext,
    ->   field_order_1 int(11),
    ->   file_1 longblob,
    ->   field_value_2 longtext,
    ->   field_order_2 int(11),
    ->   file_2 longblob,
    ->   field_value_3 longtext,
    ->   field_order_3 int(11),
    ->   file_3 longblob,
    -> 
    ->   PRIMARY KEY (submit_time, form_name)
    -> );
Query OK, 0 rows affected (0.02 sec)

mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO normalized_wp_cf7dbplugin_submits
    -> SELECT
    ->   t1.submit_time,
    ->   t1.form_name,
    ->   t1.field_value,
    ->   t1.field_order,
    ->   t1.file,
    ->   t2.field_value,
    ->   t2.field_order,
    ->   t2.file,
    ->   t3.field_value,
    ->   t3.field_order,
    ->   t3.file
    -> FROM wp_cf7dbplugin_submits AS t1
    -> INNER JOIN wp_cf7dbplugin_submits AS t2
    ->   ON t1.submit_time = t2.submit_time AND t1.form_name = t2.form_name
    -> INNER JOIN wp_cf7dbplugin_submits AS t3
    ->   ON t1.submit_time = t3.submit_time AND t1.form_name = t3.form_name
    -> WHERE t1.field_name = 'field_1' AND t1.is_normalized = 0
    ->   AND t2.field_name = 'field_2' AND t2.is_normalized = 0
    ->   AND t3.field_name = 'field_3' AND t3.is_normalized = 0
    -> FOR UPDATE;
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> UPDATE wp_cf7dbplugin_submits SET is_normalized = 1 WHERE is_normalized = 0;
Query OK, 9 rows affected (0.00 sec)
Rows matched: 9  Changed: 9  Warnings: 0

mysql> COMMIT;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM wp_cf7dbplugin_submits;
+-------------+-----------+------------+-------------+-------------+----------+---------------+
| submit_time | form_name | field_name | field_value | field_order | file     | is_normalized |
+-------------+-----------+------------+-------------+-------------+----------+---------------+
|      0.0000 | form      | field_1    | value_1_1   |           1 | file_1_1 |             1 |
|      0.0000 | form      | field_2    | value_1_2   |           2 | file_1_2 |             1 |
|      0.0000 | form      | field_3    | value_1_3   |           3 | file_1_3 |             1 |
|      1.0000 | form      | field_1    | value_2_1   |           1 | file_2_1 |             1 |
|      1.0000 | form      | field_2    | value_2_2   |           2 | file_2_2 |             1 |
|      1.0000 | form      | field_3    | value_2_3   |           3 | file_2_3 |             1 |
|      2.0000 | form      | field_1    | value_3_1   |           1 | file_3_1 |             1 |
|      2.0000 | form      | field_2    | value_3_2   |           2 | file_3_2 |             1 |
|      2.0000 | form      | field_3    | value_3_3   |           3 | file_3_3 |             1 |
+-------------+-----------+------------+-------------+-------------+----------+---------------+
9 rows in set (0.00 sec)

mysql> SELECT * FROM normalized_wp_cf7dbplugin_submits;
+-------------+-----------+---------------+---------------+----------+---------------+---------------+----------+---------------+---------------+----------+
| submit_time | form_name | field_value_1 | field_order_1 | file_1   | field_value_2 | field_order_2 | file_2   | field_value_3 | field_order_3 | file_3   |
+-------------+-----------+---------------+---------------+----------+---------------+---------------+----------+---------------+---------------+----------+
|      0.0000 | form      | value_1_1     |             1 | file_1_1 | value_1_2     |             2 | file_1_2 | value_1_3     |             3 | file_1_3 |
|      1.0000 | form      | value_2_1     |             1 | file_2_1 | value_2_2     |             2 | file_2_2 | value_2_3     |             3 | file_2_3 |
|      2.0000 | form      | value_3_1     |             1 | file_3_1 | value_3_2     |             2 | file_3_2 | value_3_3     |             3 | file_3_3 |
+-------------+-----------+---------------+---------------+----------+---------------+---------------+----------+---------------+---------------+----------+
3 rows in set (0.00 sec)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/06 09:31

    KiyoshiMotokiさま
    返信が週をまたいでしまい失礼をお詫びいたします。
    私の環境で実行したところ、意図通りに結果を得ることができました。
    データを横持ちにするためにjoinとwhereをこのように使えることには思い至りませんでした。
    シンプルかつわかりやすく、大変勉強になりました。
    ありがとうございました。

    私のつたない質問に対して、辛抱強くコメントで内容を確認してくださったことについても、
    深く御礼申し上げます。

    キャンセル

  • 2017/02/06 10:31

    b

    キャンセル

+2

(1)autoincrementのIDを有する別のテーブルAを用意
(2)そのテーブルに、3つの情報を何らかの形で表現するフィールドを用意
そのまま転記するでも、ハッシュなどでも
(3)Aに対して、(2)と比較し、レコードが存在しなければレコードを追加
(4)上記(3)で付番されたIDを、元々振りたいIDに設定する

・IDが数値である必要はない場合、3つの情報から、ユニークになるような文字列にしてしまうのが手っ取り早い。数値にしようとすると、それなりに大きな数字になる
・投稿時であれば、(2)はあまり必要ではなく、投稿と同時に、テーブルAにレコードを追加し、そのIDを採用するだけ

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

※手元にMYSQLが無いのでSQLをよく使う身として回答します。
※回答文のSQLはここで書いただけで動作確認がとれてません

もしもデータの保存処理を少しでも書き換えられるなら、ID列の型をGUIDにして、適当なGUIDを生成して一緒に代入してしまうのが一番手っ取り早いです。MySQLにはGUID型が無いので、ユニークな文字列として登録します。

しかし、それができない場合はID発行用のテーブルで別途管理していくプロシージャで処理するかな、と思います。以下はそのサンプルです。


最新より古いsubmit_timeが登録されるようなことがあるとコレはちょっとダメになってしまいますが、最後にID列を振ったところの続きからID列を振りなおすように配慮しています。

1. ID列発行用のテーブルを作る

通常、このテーブルは以下のように正規化されると思います。

submit

  1. id
  2. submit_time
  3. form_name

submit_detail

  1. id
  2. field_name
  3. field_value
  4. field_order
  5. file

なので、ID列発行用にid, submit_time, form_nameでテーブルを作ってしまいます。

CREATE TABLE wp_cf7dbplugin_submits_identities(
    id MEDIUMINT NOT NULL AUTO_INCREMENT,
    submit_time decimal(16,4) NOT NULL,
    form_name varchar(127));

2. ID列発行用のテーブルの最大のsubmit_timeをとってくる

バッチの最初にこのテーブルを検索して最大のsubmit_timeを取得します。
submit_timeが入れ替わることが無い場合は基本的にはこれで済みます。

SELECT MAX(submit_time) FROM wp_cf7dbplugin_submits_identities;


必要そうならsubmit_timeにインデックスを張ったり、MAX(id)を調べてそのsubmit_timeを取ってくるとかなんかやってください…。


3. submit_time以降のレコードをgroup byしID列発行テーブルに挿入する

INSERT INTO wp_cf7dbplugin_submits_identities(submit_time, form_name)
SELECT submit_time, form_name FROM wp_cf7dbplugin_submits
GROUP BY submit_time, form_name WHERE submit_time > ?/*最大時間*/

4. ID列発行テーブルから元のテーブルにID列をコピーする

UPDATE
  wp_cf7dbplugin_submits t1,
  wp_cf7dbplugin_submits_identities t2
SET t1.id = t2.id
WHERE
  t1.submit_time = t2.submit_time
  AND t1.form_name = t2.form_name
  AND t2.submit_time > ? /*最大時間*/

で、これをストアドにすると以下みたいな感じじゃないかと思います。
テーブルは別に作っておきます。

  1. 複数のSQL文を実行するのでトランザクションをかけます
  2. クエリが失敗した時はエラーハンドリングでロールバックします
  3. コマンドを実行します
  4. コミットします
CREATE TABLE wp_cf7dbplugin_submits_identities(
    id MEDIUMINT NOT NULL AUTO_INCREMENT,
    submit_time decimal(16,4) NOT NULL,
    form_name varchar(127));

CREATE PROCEDURE wp_cf7dbplugin_submits_grant_id()
BEGIN
  START TRANSACTION;

  DECLARE EXIT HANDLER FOR SQLEXCEPTION 
  BEGIN
    ROLLBACK;
    EXIT PROCEDURE;
  END;

  SELECT MAX(submit_time) FROM wp_cf7dbplugin_submits_identities INTO @submits;

  INSERT INTO wp_cf7dbplugin_submits_identities(submit_time, form_name)
  SELECT submit_time, form_name FROM wp_cf7dbplugin_submits
  GROUP BY submit_time, form_name WHERE submit_time > @submits;

  UPDATE
    wp_cf7dbplugin_submits t1,
    wp_cf7dbplugin_submits_identities t2
  SET t1.id = t2.id
  WHERE
    t1.submit_time = t2.submit_time
    AND t1.form_name = t2.form_name
    AND t2.submit_time > @submits;

  COMMIT;
END

submit_timeで対象レコードをフィルタリングしているので全体で1回トランザクションをかけてしまっています。ID列の生成と反映を別にするならもっと細かいロックにできると思います。
また、各クエリでorder by句等は不要なはずなのでつけていませんが、MySQLの場合にも不要ということを確認しているわけではないので別途ご確認ください。

※念のため再掲:回答文のSQLはここで書いただけで動作確認がとれてません

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/03 17:21

    haru666さま
    詳細なご回答をいただき、恐れ入ります。
    submit_timeが逆転してしまうことは、pluginの不具合位でしか発生しえないものと思われます。
    まだテストはできていないのですが、処理の流れを見させていただき、
    ほぼ私が実現したい内容に沿っているのではないかと思います。
    ・ID発行用のテーブルを作る
    ・トランザクションをかける
    などの処理は、普段select位しか書かない身からすると大変参考になり、
    今後の仕事でも大いに活かすことができる内容でございました。
    深く御礼申し上げます。

    キャンセル

0

ちょっと状況がわからないので考え方だけ
本質的にIDというのはレコードを特定するキーになる箇所なので
ユニークなコードでNULLは指定させないものです。
なにか仕様として問題ありそうな気がしますが、
運用でカバーする感じでしょうか?

逆にIDは先に振って、投入データをIDを指定してUPDATEするとかでは
いけないのでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • MySQL

    5869questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • SQL

    2398questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。