No.1ベストアンサー
- 回答日時:
ストアドプロシージャを利用しましょう
//準備
//idをプライマリにダミーでdataカラムをつくっておきます
create table hoge(id bigint not null primary key,data varchar(10));
//そもそもプライマリにすればidは重複しません
//ここからプロシージャの宣言
DROP PROCEDURE IF EXISTS PROC_ADDID;
DELIMITER //
CREATE PROCEDURE PROC_ADDID(IN start_id BIGINT,IN range_id INT)
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i<range_id DO
INSERT IGNORE INTO `hoge`(`id`) VALUES(start_id + i);
SET i=i+1;
END WHILE;
END
//
DELIMITER ;
//ここまで
//mから始まるn個のデータをつくるには CALL PROC_ADDID(m,n);
CALL PROC_ADDID(78532456,10000);
有難うございます。やってみましたが解決しませんでした。すでに10行分データを入れた状態で、主キーを設定し、データを入れている状態なので、create table hoge(id bigint not null primary key,data varchar(10));はやりませんでした。
DROP PROCEDURE IF EXISTS PROC_ADDID;# 返り値が空でした (行数 0)。
DELIMITER //
CREATE PROCEDURE PROC_ADDID(IN start_id BIGINT,IN range_id INT)
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i<range_id DO
INSERT IGNORE INTO `maintable`(`no`) VALUES(start_id + i);
SET i=i+1;
END WHILE;
END
//
# 返り値が空でした (行数 0)。
DELIMITER ;
CALL PROC_ADDID(78532456,10000);# 返り値が空でした (行数 0)。
No.4
- 回答日時:
>テーブルには、afieldが更新されたときに更新される日時が入るupdate_dayと
>作成したときの日時が入るnew_dayがあります。
>更新日時 update_day timestamp null DEFALT null
>作成日時 new_day timestamp null DEFALT null
ごめんなさい。補足の意味がわからないのだけど
更新日時にしても作成日時にしてもどうしたいの?
たとえば、
・xxxx年xx月xx日からyyyy年yy月yy日の間のランダムの値にする
・更新日時はかぶってはいけない(単純なランダムより結構やっかい)
・ID順に更新日はバックデートしてはいけない(これはすごく面倒)
・更新日時は作成日時と同じか新しくなくてはいけない
みたいに書かないとエスパーじゃないんだから他人には伝わらないよ
>・xxxx年xx月xx日からyyyy年yy月yy日の間のランダムの値にする
年月日の表示で、ランダムでなくていいです。
>・更新日時はかぶってはいけない(単純なランダムより結構やっかい)
かぶってもいいです。
>・ID順に更新日はバックデートしてはいけない(これはすごく面倒)
>・更新日時は作成日時と同じか新しくなくてはいけない
レコードを作成したときは、更新日時と作成日時が同じになっています。
更新日はafieldのデータを更新したときだけ、その都度更新させます。
そのとき作成日時は更新しないで常に作成した日にします。
No.3
- 回答日時:
>主キーだけが入って、その他のフィールドは空っぽのレコードがずらっとできました。
そういう風にかきましたよ、それ以外の仕様書いてなかったし
そもそもテーブルの構成もわからないし
>主キーがXXX~XXXまでの間のAフィールドをXXX、BフィールドをXXX、
>とそれぞれ設定してUPDATEを実行。
>上以外の主キーがXXX~XXXまでの間の・・・
>さらに上以外の主キーがXXX~XXXまでの間の
INSERTの方法によってはできるんじゃないでしょうかねぇ
ある程度仕様をだしてもらえば考えてみやすよ
すみません。有難うございます。
テーブルには、afieldが更新されたときに更新される日時が入るupdate_dayと
作成したときの日時が入るnew_dayがあります。
更新日時 update_day timestamp null DEFALT null
作成日時 new_day timestamp null DEFALT null
DELIMITER $$
CREATE TRIGGER tri1 BEFORE UPDATE ON dbtable FOR EACH ROW
BEGIN
IF NEW.afield != OLD.afield THEN SET NEW.update_day = now(); END IF;
END;
$$
DELIMITER ;
No.2
- 回答日時:
>INSERT IGNORE INTO `maintable`(`no`) VALUES(start_id + i);
MySQLのバージョンはいくつでしょうか?
たとえば
CALL PROC_ADDID(100,100);
など小さめの数でやってみていけますか?
5.0.51aです。
主キーだけが入って、その他のフィールドは空っぽのレコードがずらっとできました。
これで正しくできたのでしょうか。
それぞれのフィールドにデータを入れていくのは、できればバラバラのデータを入れたいです。
主キーがXXX~XXXまでの間のAフィールドをXXX、BフィールドをXXX、とそれぞれ設定してUPDATEを実行。
上以外の主キーがXXX~XXXまでの間の・・・
さらに上以外の主キーがXXX~XXXまでの間の・・・
それを何十通りもやる、みたいなやり方になりますか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- フリーソフト 【至急】Mp3tagで歌手情報を追加したい。 一度やったのですがスマホで確認しても反映されないのです 5 2022/10/23 21:50
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(Microsoft Office) エクセルでテーブルの最終行が自動追加されない 1 2023/01/04 15:09
- BTOパソコン ゲーミングPCの購入を考えているのですが、スペックについてコスパがいい組み合わせを教えてください。 5 2023/04/28 20:06
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
マイクラPC版のコマンドで効率...
-
副問合せの書き方について
-
クエリ表示と、ADOで抽出したレ...
-
VIEWの元のテーブルのindexって...
-
[MySQL] 3つのテーブルの結合で...
-
エラー 1068 (42000): 複数の主...
-
SQLサーバから、項目の属性(型...
-
エクセルの関数について教えて...
-
PL/SQLの変数について
-
SQL Left Join で重複を排除す...
-
WordpressのContact form 7でzi...
-
URL と行番号の指定
-
1テーブル&複数レコードの更新...
-
Postgreのupdateコマンドでエラー
-
テーブル名を省略して「h.id」...
-
Access パラメータクエリをcsv...
-
sqlで、600行あるテーブルを100...
-
WHERE id = ? について
-
存在しないレコードの抽出方法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
-
VIEWの元のテーブルのindexって...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
select文のwhere句に配列を入れ...
-
sqlで、600行あるテーブルを100...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
Unionした最後にGROUP BYを追加...
-
期間の重複を調べるSQL文につい...
-
クエリ表示と、ADOで抽出したレ...
-
Access パラメータクエリをcsv...
-
PL/SQLの変数について
-
MySQLのDATE型カラム値がNULLの...
-
php+mysqlで複数選択削除について
-
上位3位を求めるSQL文は?
おすすめ情報