• 締切済み

mysqlデータが入れられない

現在、パールとMysqlを組み込みインターネットに公開する事を目指して勉強してます。 テーブルを作成し、サーバーに入れ様とした時に他のテーブルは挿入されたにもかかわらず下記のプログラムはシンタックスエラーを表示します。 新しい試みとして文字の指定にtextを使ったのですがそこがどうもおかしいようです。 どうかたすけていただけないでしょうか? create table jinzai_hkn_table( iput_charg_id int not null, hkn_charg_id int not null, #派遣営業者ID kyu_id char(2) not null, #募集職業分類ID j_dai_id char(10) not null, #ジャンル大分類ID j_tiu_id char(10) not null, #ジャンル中分類ID j_siou char(10) not null, #ジャンル小分類ID jin_hkn1 char(30) not null, #求職スピード(募集スピjin_hkn2 char(60) null, # jin_hkn3 char(60) not null, #求職タイトル(求人タイjin_hkn4 text(800) null, #求職者コメント(人事コ jin_hkn5 char(100) not null, #派遣管理番号 jin_hkn6 char(40) not null, #希望採用形態(採用形jin_hkn7 char(20) not null, #性別(性別) jin_hkn8 char(20) not null, #希望勤務場所(県) jin_hkn9 char(20) not null, #希望勤務場所(市町村) jin_hkn10 char(40) not null, #最終学歴(学校名) jin_hkn11 char(40) not null, #最終学歴(専攻) jin_hkn12 char(20) null, #最終職歴 jin_hkn13 char(20) null, #最終職歴勤続年数 jin_hkn14 char(60) null, #最終職歴職種 jin_hkn15 char(100) null, #資格1 jin_hkn16 char(100) null, #資格2 jin_hkn17 char(100) null, #資格3 jin_hkn18 char(200) null, #得意な事・一芸 jin_hkn19 char(200) null #備考 );

  • aeic
  • お礼率10% (60/582)

みんなの回答

  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

何行目でSyntax Errorがでていて、また、エラーメッセージとともにエラーが発生した近辺のSQL文が表示されるはずです。 まず、コマンドライン(mysqlコマンド)からSQL文が正しく実行できるか確認しましょう。 手元では、「text(800)」を「text」にしただけで大丈夫なようですけど、、、 たとえばコメント部分に日本語を使用しているためにおかしくなっているとか、、、

aeic
質問者

お礼

ありがとうございます。 、「text(800)」を「text」にしただけで大丈夫なようですけど、、、 上記の方法を試した所すんなりは入りました。 数字をしていしなくて良いのですね。 ありがとうございます。

関連するQ&A

  • MySQLでCREATE TABLE

    MySQLでCREATE TABLEをする際に、 プライマリキーを設定する場合は、 CREATE TABLE( AAA CHAR(5) NOT NULL, BBB CHAR(5) NOT NULL, CCC VARCHAR(10) NOT NULL, PRIMARY KEY(AAA) ); のようにすると思うのですが、「BBB」を外部キーにしたい場合は、どうしたらいいのでしょうか?

  • MySQLの外部キーの設定について

    はじめまして。 質問があります。 MySQLを使用しているのですが、以下を見てください。 ---------------------------------------------------------------- mysql> create table vendors -> ( -> vend_id char(10) NOT NULL, -> vend_name char(50) NOT NULL, -> vend_zip char(10), -> vend_state char(10), -> vend_city char(50), -> vend_address char(50), -> primary key(vend_id) -> ) TYPE=MyISAM; Query OK, 0 rows affected (0.38 sec) mysql> create table products -> ( -> prod_id char(10) NOT NULL, -> vend_id char(10) NOT NULL, -> prod_name char(255) NOT NULL, -> prod_price decimal(8,0) NOT NULL, -> prod_desc blob, -> primary key(prod_id), -> foreign key(vend_id) references vendors(vend_id) -> ) TYPE=MyISAM; Query OK, 0 rows affected (0.05 sec) ---------------------------------------------------------------- 外部キーを設定したつもりなのですが、desc productsを実行すると キーフィールドに「pri」と表示されているので、主キーが 設定されていることが確認できるのですが、外部キーが設定されて いることは確認できません。外部キーは設定されているのでしょうか? もし設定されていないのなら、どのようにすればよいのでしょうか? また、外部キーが設定されていることを確認するにはどうすれば よいでしょうか?ご教授お願いします。

    • ベストアンサー
    • MySQL
  • MySQLでのテーブル作成

    MySQLでこういったテーブルを作成したのですが、 CREATE TABLE NOSGI ( GNRE_CD CHAR(5) NOT NULL, GNRE_NAME VARCHAR(20) NOT NULL, PRIMARY KEY (GNRE_CD) ); GNRE_CDはCHAR型で作成したのに、カラムの情報を見ると、 VARCHAR型にしまうのですが、どうしてでしょうか?

  • mysqlのインデックスについて質問です。

    mysqlのインデックスについて質問です。 http://archiva.jp/web/server-side/sql_02.html に、 『mysqlでは1つのクエリ実行で、1つのテーブルにつき1つのインデックスしか使用できない』 とあります。 よく以下のようなテーブル定義を見かけますが、 CREATE TABLE IF NOT EXISTS `data` ( `id` int(10) NOT NULL default '0', `user_id` int(10) NOT NULL default '0', `file_id` int(10) NOT NULL default '0', `name` text collate utf8_unicode_ci NOT NULL default '', PRIMARY KEY (`id`), KEY `user_id` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; idとuser_idを条件にするクエリであれば、上記制約を満たすため、 KEY `id_user_id_idx` (`id`,`user_id`) の複合クエリを定義すれば良いのでしょうか? また、idとuser_idとfile_idを条件にするクエリも考慮に入れた場合、 テーブル定義は以下のようにするのでしょうか? CREATE TABLE IF NOT EXISTS `data` ( `id` int(10) NOT NULL default '0', `user_id` int(10) NOT NULL default '0', `file_id` int(10) NOT NULL default '0', `name` text collate utf8_unicode_ci NOT NULL default '', PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `id_user_id_idx` (`id`,`user_id`), KEY `id_user_id_file_id_idx` (`id`,`user_id`,`file_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 最後に、create table 時のインデックスの指定は、 INDEX `user_id` (`user_id`), のようにもできますが、INDEXとKEYの違いは何かあるのでしょうか。

    • ベストアンサー
    • MySQL
  • insert、selectのやり方を教えて下さい

    こんにちは。 すみません、ネットで調べていたのですが、見当もつかなかったので、教えていただけないでしょうか? ---------------------------------------------- テーブル1:t1 c1 char(254)not null unique,c2 int,c3 int あ,3,null い,4,null う,2,null ---------------------------------------------- テーブル2:t2 c1 char(254)not null unique,c2 int,c3 int い,null,9 う,null,12 え,null,13 お,null,11 ---------------------------------------------- 上記の2つのテーブルがあるとします。そのときに、下記のような結果を新たなテーブルに出力するには、どのような、insert、selectが良いのでしょうか? ---------------------------------------------- テーブル3:result c1 char(254)not null unique,c2 int,c3 int あ,3,null い,4,9 う,2,12 え,null,13 お,null,11 ---------------------------------------------- 困っています。お願いします。

  • MySQL SELECTの指定について

    まず、御覧頂きありがとうございます。 早速質問なのですが、 CREATE TABLE `hoge` ( `id` int(8) NOT NULL, `name` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `hoge` (`id`, `name`) VALUES (1, 'hogeA'), (2, 'hogeB'), (3, 'hogeC'), (4, 'hogeD'); CREATE TABLE `test` ( `id` int(8) NOT NULL, `name` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `test` (`id`, `name`) VALUES (1, 'testA'), (4, 'testD'); という値が入ってるテーブルがあるとします。(長くなってすみません) で、 hoge.id と test.id が重複した場合 test.name を表示させたいです。 期待値としては id,name 1.testA 2,hogeB 3,hogeC 4,testD になります。 業務でJoinを使うようなテーブル構造にそもそもしないというのもあり、クリティカルなSQLコードに不慣れで御知恵を借りたく質問させて頂きました。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQLでの集計

    いつもお世話になっております。MySQLを利用しておりまして質問です。 同じ構成のテーブルが5つあり、選択されたテーブルを集計するSQLを作成しています。 カラムを簡単に構成を書くと ID、名前、ステータス1、ステータス2 のような形です。 テーブル1、2、3が選択された場合 テーブル1と2でIDの重複のない一覧を作成し、IDが被っていた場合はステータスをそれぞれ大きいほうを保持するようにします。 そして次にテーブル1、2を合わせたテーブルとテーブル3で同じように集計をしたいのですが、ここがうまく出来ません。 実際の環境ではなく簡素化したものなのでおかしな点があるかもしれませんがこのようになっています。 SELECT TTT1.id,TTT1.名前,TTT1.st1,TTT1.st2 FROM(     SELECT id,名前,ステータス1 as st1,ステータス2 as st2     FROM(        SELECT *        FROM テーブル1 T1        WHERE T1.id NOT IN(SELECT T2.id FROM テーブル2 T2)        UNION All        SELECT *        FROM テーブル2 T2        WHERE T2.id NOT IN(SELECT T1.id FROM テーブル T1)     ) as TT1     UNION     SELECT id,名前,st1,st2     FROM(         SELECT T1.id,T1.名前,         (CASE T1.ステータス1 or T2.ステータス1 WHEN "2" THEN "2" WHEN "1" THEN "1" WHEN "0" THEN "0" ELSE null END) as st1,         (CASE T1.ステータス2 or T2.ステータス2 WHEN "2" THEN "2" WHEN "1" THEN "1" WHEN "0" THEN "0" ELSE null END) as st2,         FROM テーブル1 T1,テーブル2 T2         WHERE T1.id = T2.id AND NOT(T1.st1 IS null AND T1.st2 IS null AND T2.st1 IS null AND T2.st2 IS null) ) as TT2 )as TTT1 /* UNION ALL SELECT id,名前,st1,st2 FROM (TTT1とテーブル3を比較したもの)as TTT2 */ /**/で囲ったところでTTT1が呼び出せれば、テーブル1のところをTTT1にし、テーブル2をテーブル3にすれば出来ると思うのですが、そういうことは無理なのでしょうか? また集計するテーブルの数が不特定なので一つずつ集計をする形を取りましたが、 もっとこういう風にやればいいと言う方法はございますでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • データの取得方法

    Aテーブル{ id char(3) not null, name varchar(10), a_no char(5), b_no char(5), c_no char(5), date timestamp } Bマスタ{ no char(5), name char(10) } 上記のようなDBがあるのですがAテーブルのa_no、b_no、c_noに入るのはBマスタのnoになります。 下記のようにデータを取得したい場合、どうすればうまく取得できるのでしょうか。 A.id, A.name, A.a_no, カラム名をname1としてB.name, b_no, カラム名をname2としてB.name, c_no, カラム名をname3としてB.name そんなに難しいことではないと思うのですが、考えれば考えるだけ頭の中でこんがらがってきて困っています。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • varchar型を主キーに…

    現在サーブレット/JSPを利用してDBにユーザアカウントを登録、削除、更新、一覧をできるようするシステムを作成しています。 テーブルを create table loginuser ( userId char(16) not null default '', passwd char(16) not null default '', name varchar(50) not null default '', accessFlg int(1) not null default '0', primary key(userId)); で作成しました。 IDが数字の時はDBに登録ができるのですがIDに文字を入力するとDBに登録されません。 主キーをvarchar型で使用するのは不可能なのでしょうか? ご返答をよろしくお願いします。

  • MySQL 2つのテーブルから情報を得る

    【質問内容】 出稿した求人広告に関する情報を収めたデータベース内に、以下の2つのテーブルがあります ※以下の文章を読むより、添付画像をご覧頂いたほうが分かりやすいと思いますが 1.出稿した求人広告の情報 テーブル名:ad_info id ID plan 広告プラン名 date_from DATE 広告開始日 2011-12-16 date_until DATE 広告終了日 2011-12-31 price 広告料金 2.求人サイトへのアクセス情報(広告掲載期間のみ毎日2時間おきに収集) テーブル名:daily_access id ID created_at DATETIME クローリングした日時 2011-12-16 17:00:00 pv プレビュー数 applicants 応募者数 occupation_ranking 職種別画面での自社の掲載順位 newly_ranking 新着企業画面での掲載順位 この2つのテーブルからad_infoの広告ごとに(その掲載期間ごとに)、daily_accessのデータを集計したいと思っています。しかしそのためのSQL文がうまく書けず、詰まっています。 どうか良い方法を教えていただけませんでしょうか。 あるいは「テーブル構造自体を変えたほうがいいよ」、「SQL文の書き方が良くないよ」など直接関係のないことでも大歓迎です。 よろしくお願いします。 【MySQLバージョン情報】 $ mysql --version mysql Ver 14.14 Distrib 5.5.16, for Linux (x86_64) using EditLine wrapper 【テーブル作成文】 CREATE TABLE `ad_info` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `plan` VARCHAR(30) DEFAULT NULL, `date_from` DATE DEFAULT NULL, `date_until` DATE DEFAULT NULL, `price` INTEGER DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `daily_access` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `created_at` DATETIME NOT NULL, `pv` INTEGER DEFAULT NULL, `applicants` INTEGER DEFAULT NULL, `occupation_ranking` INTEGER DEFAULT NULL, `newly_ranking` INTEGER DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    • ベストアンサー
    • MySQL