![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
テーブルの行を増やし、
データを一年文作成したいのですが・・・。
CREATE TABLE CALENDAR_TBL(
YYYYMMDD DATE NOT NULL,
DayData NUMBER(3) NULL
CONSTRAINT CALENDAR_TBL_PKEY PRIMARY KEY(YYYYMMDD));
このテーブルに、2005年のデータ365レコードを挿入したいのですが、
1つのINSERT文(SQL)で、できますでしょうか?
(※PL/SQLは除きます。)
※不可能であれば、SELECT文(下記のように)を一年分用意してUNIONで作成するのですが、
これ以外に簡単にできないでしょうか?
INSERT INTO CALENDAR_TBL
(
(SELECT SYSDATE + 000, DayData FROM CALENDAR_TBL)
UNION
(SELECT SYSDATE + 001, DayData FROM CALENDAR_TBL)
UNION
(SELECT SYSDATE + 002, DayData FROM CALENDAR_TBL)
UNION
(SELECT SYSDATE + 003, DayData FROM CALENDAR_TBL)
・・・(省略)・・・
UNION
(SELECT SYSDATE + 365, DayData FROM CALENDAR_TBL)
)
No.2
- 回答日時:
こんにちは。
365以上のレコードが存在するテーブルがある事が大前提ですが…。
仮にUSER_TAB_COLUMNSが365レコード以上ある場合に
下記のようなSQL文を実行する事で実現できます。
※DayDataには何が入るのかわからないため、とりあえず1を格納。
INSERT INTO CALENDAR_TBL (YYYYMMDD,DayData)
SELECT SYSDATE+ROWNUM ,1
FROM USER_TAB_COLUMNS
WHERE ROWNUM < 366
;
参考までにどうぞ。
この回答への補足
回答ありがとうございます。
う~ん、この大前提抜きで
考えないといけないので・・・すいません。
やはり、UNIONを使うしかないのでしょうね。
No.1
- 回答日時:
こんにちは。
私がよく大量データの試験用にやっていた手法です。
エクセルとかでデータを365件作ります。
この場合ですと日付が可変なのでしょうか?
そのデータをテキストエディタのマクロ機能を用い
(ひでまるとか)
INSERT文をデータ数分作ります。
例
INSERT INTO CALENDAR_TBL VALUES(20050901,001);
INSERT INTO CALENDAR_TBL VALUES(20050902,001);
INSERT INTO CALENDAR_TBL VALUES(20050903,001);
INSERT INTO CALENDAR_TBL VALUES(20050904,001);
・
・
・
INSERT INTO CALENDAR_TBL VALUES(20050831,001);
このtxtをファイル名つけて保存して
SQLplusのプロンプトで@実行してみてはいかがでしょうか?
データの仕様がよくわからないのですが
連番とかであればほんの数分で作成できますよ。
この回答への補足
投稿ありがとうございます、が
1つのINSERT文(SQL)で、行いたいので・・・すいません。
例えば、下記のような感じで(なんの言語がよく分かりませんが・・・。)
1月1日~12月31日までの、365行のデータを入れたいのです。
INSERT INTO CALENDAR_TBL
(while i=0,wk_YYYYMMDD = 20050101 to wk_YYYYMMDD > 20060000
i = i + 1
wk_YYYYMMDD = wk_YYYYMMDD + 1
(SELECT wk_YYYYMMDD, i FROM CALENDAR_TBL)
)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- PHP PHPSpreadsheetを使って関数を繰り返し埋め込みたい 1 2023/05/24 11:33
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Oracle SQL update方法 2 2022/06/22 14:07
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- MySQL php テーブルを作れない 2 2022/11/17 18:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL*Loader Append
-
【PL/SQL】FROM区に変数を使う方法
-
where句中のtrim関数について
-
単一グループのグループ関数で...
-
oracle DB内のデータを増幅す...
-
SELECT FOR UPDATE で該当レコ...
-
AccessのSQL文で1件のみヒット...
-
「数字で始まらない」ものを抽...
-
Oracle10gからkeySQLで集計データ
-
PL/SQL内の共通関数の引数にフ...
-
連続したデータを条件とするSQL...
-
updateで複数行更新したい
-
デフォルトでデータが表示され...
-
アクセスのレポートでレコード...
-
ACCESS レコードの並び順について
-
トランザクションログを出力せ...
-
引数によってwhere句を切り替え...
-
group byの並び順を変えるだけ...
-
テーブルの行を増やしたい・・・。
-
SQL文でご質問です
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
単一グループのグループ関数で...
-
【PL/SQL】FROM区に変数を使う方法
-
SQL*Loader Append
-
where句中のtrim関数について
-
AccessのSQL文で1件のみヒット...
-
group byの並び順を変えるだけ...
-
アクセスのレポートでレコード...
-
トランザクションログを出力せ...
-
データ
-
SELECT FOR UPDATE で該当レコ...
-
SQLで条件にヒットしたレコード...
-
「数字で始まらない」ものを抽...
-
引数によってwhere句を切り替え...
-
1レコード全てを改行なしで表...
-
BLOB型項目をSQLの検索条件に指...
-
updateで複数行更新したい
-
【SQL】違うフィールド同士の集...
-
osqleditについて
-
レコードの更新履歴について
-
あるカラムに同じ値を持つレコ...
おすすめ情報