- 締切済み
MySQLに、同名データを上書きする方法
データベースを使用して、MySQLにデータを上書きしたいのですが、 『m_control』テーブルの「controlid」にある同名データ('PRIMARY')があるため、エラーになります。 長いので、貼り付けられませんが、実際に貼り付けた後、どこをどう修正すれば良いのかを、おわかりの方がおりましたら、教えてください。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- m-take0220
- ベストアンサー率60% (477/782)
> 今あるデータベースの中のテーブルを全て削除すれば、よろしいですか? あなたが削除しても構わないと判断するのであれば、やってみればいいでしょう。 どんなテーブルが存在して、その中にどんなデータが入っていて、それがどのような経緯で作成されたのか一切わからない回答者が、正確な判断をできると思いますか? 質問文で、「『m_control』テーブルの」とテーブル名を特定しているのですから、まずはそのテーブルに対して対処してみるのがいいんじゃないですか。
- m-take0220
- ベストアンサー率60% (477/782)
データベースはデータを「追加」していく作りになっているので、以前のデータは明示的に削除しないと残ったままです。テキストファイルを上書きするように、新しい内容を書き込めば前のデータがなくなるようにはなっていません。 だから、前回の回答で、テーブル内のデータを削除するか、テーブル自体を削除するように記載しています。
- kichikuma
- ベストアンサー率18% (202/1080)
>どんな環境でMysqlを利用しているのかわかりませんので、Mysqlをどこにどのように設置したのか説明してください。 どうして説明できませんか? 例えば、私が昔からよく使う環境なら、 LAMP環境です。 linux OSで、apache,mysql, Perl、PHP、Pythonよ頭文字のP の略です。 この環境でmysqlを弄るなら、コマンドラインを使うとか、phpmyAdminを使いますね。 と言うのが説明です。 始めたばかりで説明が難しいとしても、 https://www.google.co.jp/search?q=windows+mysql&oq=windows+mysql&aqs=chrome..69i57j0j5j0.6365j0j4&client=ms-android-sonymobile&sourceid=chrome-mobile&ie=UTF-8 この中のどれなのか?と言うことを示せますよね。 SQL文がそもそも何だかわからないなら、単語自体を検索すれば良いし、回答を理解しようと言う気が感じられないです。 つまり、質問していることについても理解しようとしていないような印象です。 違うようならそれなりの結果を見せてください。 正直なところ、現状では教えるまでもないです。
補足
TwitterBrainプログラムソースをSQLに、ペーストしたいのですが、その際に、同データ名(PRIMA)があるため、エラーになります。 この問題を、解消したいのですが、どうしたら良いですか? ロリポップサーバーのライト版を使用しており、1つしか、データベースを使用することができません。
- m-take0220
- ベストアンサー率60% (477/782)
データベースが初めででも、技術者であれば実行しようとしている内容くらい調べましょう。 「上書き」というのが、現存するデータを消去して新しいデータに置き換えたいということであれば、先にテーブル内のデータを削除しておくか、テーブル自体を削除しておく必要があります。 あなたが張り付けたコードでは、テーブルが存在しなければ作成し、データを追加するようになっています。上書きにはなりません。 > 同名データ('PRIMARY')があるため 'PRIMARY'が同名データなのではなく、PRIMARYキーに指定された列に、重複するデータを登録しようとしているのでエラーになっています。
- kichikuma
- ベストアンサー率18% (202/1080)
desc テーブル名¥G と言うのはSQL文です。 データベースを扱うなら、必須なので知っているのではないでしょうか。 そもそも質問に出てくるテーブルを作成するために、SQL文を書いていると思います。 使っていないなら、どうやってテーブルを作成したのか説明してください。 また、どんな環境でMysqlを利用しているのかわかりませんので、Mysqlをどこにどのように設置したのか説明してください。 >私は、パソコンに詳しくないので、 投稿カテゴリ: [技術者向] コンピューター > データベース > MySQL なんで、パソコンの事くらいある程度わかるのが普通です。 わからなくても構いませんが、調べるくらいはしてください。
補足
調べはしているものの、データベースを作成するのは初めての事で、理解できないのですよ。すみません。 desc 0テーブル名¥Gは、どこにあるのですか? 下記の中ですか? -- -------------------------------------------------------- -- -- テーブルの構造 `m_account` -- CREATE TABLE IF NOT EXISTS `m_account` ( `accountcd` int(11) NOT NULL default '0', `accname` varchar(128) default NULL, `twitterid` varchar(128) default NULL, `oauth_token` varchar(128) default NULL, `oauth_token_secret` varchar(128) default NULL, `tweettime` varchar(128) default NULL, `mirrortime` varchar(128) default NULL, `dayflwnum` int(11) default '0', `minflwnum` int(11) default '0', `sort` int(11) default '0', `delflg` smallint(6) default '0', PRIMARY KEY (`accountcd`), KEY `i_account_delflg` (`delflg`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- テーブルの構造 `m_control` -- CREATE TABLE IF NOT EXISTS `m_control` ( `controlid` varchar(64) NOT NULL default '', `ctrlgrpcd` int(11) default '0', `controlname` text, `serialno` int(11) default '0', `ctrlval` text, `ctrltype` text, `ctrlhelp` text, `bikou01` text, `bikou02` text, `bikou03` text, `bikou04` text, `bikou05` text, PRIMARY KEY (`controlid`), KEY `i_control_esp16` (`ctrlgrpcd`,`serialno`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -- テーブルのデータをダンプしています `m_control` -- INSERT INTO `m_control` (`controlid`, `ctrlgrpcd`, `controlname`, `serialno`, `ctrlval`, `ctrltype`, `ctrlhelp`, `bikou01`, `bikou02`, `bikou03`, `bikou04`, `bikou05`) VALUES ('system_datasavepath', 10000001, 'データ保存パス', 10, '/home/[ハッスルサーバID]/public/www/pic/', '0:1:60:256:', '', '', '', '', '', ''), ('system_picwwwpath', 10000001, 'ファイル公開パス', 20, '/pic/', '0:1:256:60:', '', '', '', '', '', ''), ('system_error_mail', 10000001, 'システム責任者メールアドレス', 30, 'twitter-brain@yahoo.co.jp', '6:', '', '', '', '', '', ''), ('exhibit_fsz_max', 10000001, '商品写真アップロード可能ファイルサイズ', 40, '2048', '3:2048:1', '単位はKB', '', '', '', '', ''), ('day_flw_num', 10000002, '一日のフォロー数', 10, '20', '3:99999:0', '初期値', '', '', '', '', ''), ('min_flw_num', 10000002, '最低フォロワー数', 20, '0', '3:99999:0', '初期値', '', '', '', '', ''), ('flw_limit_num', 10000002, 'フォロー規定数', 30, '1000', '3:9999:0', '', '', '', '', '', ''), ('flw_max_per', 10000002, 'フォロー割合', 40, '1.1', '4:10:0:2', '規定数以上フォローする場合のフォロー数/フォロワー数の値', '', '', '', '', ''), ('flw_rel_hours', 10000002, 'フォロー解除時間', 15, '48', '3:9999:0', 'フォロー返しがなかった場合、フォローを解除するまでの時間', '', '', '', '', ''), ('flw_chk_days', 10000002, 'フォローチェック間隔', 17, '7', '3:9999:0', 'フォローアカウントからフォローされているかどうかチェックする間隔(日)', '', '', '', '', ''), ('neg_word', 10000002, '除外キーワード', 5, 'お断り 禁止', '0:0:60:256:', 'フォロー対象で除外するキーワード', '', '', '', '', ''), ('consumer_key', 10000003, 'API key', 10, '', '0:1:60:256:', '', '', '', '', '', ''), ('consumer_secret', 10000003, 'API secret', 20, '', '0:1:60:256:', '', '', '', '', '', ''); -- -------------------------------------------------------- -- -- テーブルの構造 `m_ctrlgrp` -- CREATE TABLE IF NOT EXISTS `m_ctrlgrp` ( `ctrlgrpcd` int(11) NOT NULL default '0', `ctrlgrpname` varchar(128) default NULL, `ctrlgrpspl` varchar(64) default NULL, `bikou01` text, `bikou02` text, `bikou03` text, `bikou04` text, `bikou05` text, PRIMARY KEY (`ctrlgrpcd`), KEY `i_ctrlgrp_ctrlgrpspl` (`ctrlgrpspl`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -- テーブルのデータをダンプしています `m_ctrlgrp` -- INSERT INTO `m_ctrlgrp` (`ctrlgrpcd`, `ctrlgrpname`, `ctrlgrpspl`, `bikou01`, `bikou02`, `bikou03`, `bikou04`, `bikou05`) VALUES (10000001, '画像設定', '2000', '', '', '', '', ''), (10000002, 'フォロー設定', '1000', '', '', '', '', ''), (10000003, 'システム設定', '9999', '', '', '', '', ''); -- -------------------------------------------------------- -- -- テーブルの構造 `m_program` -- CREATE TABLE IF NOT EXISTS `m_program` ( `pgno` int(11) NOT NULL default '0', `pgname` varchar(128) default NULL, `pgfilename` varchar(128) default NULL, `pglvl` int(11) default '0', `bikou01` text, `bikou02` text, `bikou03` text, `bikou04` text, `bikou05` text,
- kichikuma
- ベストアンサー率18% (202/1080)
失礼しました。 下記、訂正です。 誤:derc テーブル名¥G 正:desc テーブル名¥G
補足
Cと、Dドライブは、わかるのですが、Gは、どこにあるのでしょうか?
- kichikuma
- ベストアンサー率18% (202/1080)
データベースがMysqlなんですよね? とりあえず、テーブルの構造の説明がこれではわからないので、 derc テーブル名¥G で出力したものを開示したら良いと思います。
補足
MySQLです。 私は、パソコンに詳しくないので、 derc テーブル名¥Gで、出力する方法を教えてください。 デスクトップには、ありませんでした。
補足
今あるデータベースの中のテーブルを全て削除すれば、よろしいですか? LAA0624326-8c9g9j