2016-09-28 26 views
0

私はこのSQLを初めて使っています。私はまだ完全に理解していないと思います。MySQLエラー - フィールド 'id'にデフォルト値がありません

エラー:私は、私が手にエラーがあるデータベースに

をテーブルを作成し挿入するために、次のないスクリプトをインストールしようとしています!
MySQLのエントリに失敗しました 'fb_app_id'フィールドにデフォルト値がありません。

私はファイルを検索し、テーブルを作成しているこのコードを見つけました。

CREATE TABLE IF NOT EXISTS `global_config` (
    `site_name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `site_url` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `meta_description` text COLLATE utf8mb4_unicode_ci NOT NULL, 
    `meta_keywords` text COLLATE utf8mb4_unicode_ci NOT NULL, 
    `site_theme` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `fb_app_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `fb_app_secret` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `fb_app_token` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `fb_scope` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `tw_app_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `tw_app_secret` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `yt_client_id` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `yt_client_secret` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `yt_dev_token` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, 
`fb_enabled` tinyint(1) NOT NULL, 
    `tw_enabled` tinyint(1) NOT NULL, 
    `yt_enabled` tinyint(1) NOT NULL, 
    `ffmpeg` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `seo_url` tinyint(1) NOT NULL, 
    `media_plugin_enabled` tinyint(1) NOT NULL, 
    `downloader_plugin_enabled` tinyint(1) NOT NULL, 
    `image_watermarking_enabled` tinyint(1) NOT NULL, 
    `video_watermarking_enabled` tinyint(1) NOT NULL, 
    `image_editor_enabled` tinyint(1) NOT NULL, 
    `video_editor_enabled` tinyint(1) NOT NULL, 
    `disable_all_crons` tinyint(1) NOT NULL, 
    `disable_poster_cron` tinyint(1) NOT NULL, 
    `disable_hide_delete_cron` tinyint(1) NOT NULL, 
    `disable_insights_cron` tinyint(1) NOT NULL, 
    `disable_videoeditor_bumping_cron` tinyint(1) NOT NULL, 
    `enable_signup` tinyint(1) NOT NULL, 
    `enable_maintenance_mode` tinyint(1) NOT NULL, 
    `maintenance_message` text COLLATE utf8mb4_unicode_ci NOT NULL, 
    `paypal_email` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL, 
    `admin_email` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL, 
    UNIQUE KEY `site_name` (`site_name`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; 

正確にはどのような問題が現在発生していますか、どのように解決できますか?

すべてのご協力をいただきありがとうございます。

EDIT:

$(document).on('click', '.app_setup', function(){ 

var elem = $(this); 
var fb_app_id = $('#fb_app_id').val(); 
var fb_app_secret = $('#fb_app_secret').val(); 
var tw_app_id = $('#tw_app_id').val(); 
var tw_app_secret = $('#tw_app_secret').val(); 
var yt_client_id = $('#yt_client_id').val(); 
var yt_client_secret = $('#yt_client_secret').val(); 
var yt_dev_key = $('#yt_dev_key').val(); 

elem.hide(); 
notify('wait', 'Setting up...'); 
$.post('ajax.php', { 
    'fb_app_id': fb_app_id, 
    'fb_app_secret': fb_app_secret, 
    'tw_app_id': tw_app_id, 
    'tw_app_secret': tw_app_secret, 
    'yt_client_id': yt_client_id, 
    'yt_client_secret' : yt_client_secret, 
    'yt_dev_key': yt_dev_key, 
    'app_setup': 1 
}, function(response){ 
    var data = $.parseJSON(response); 
    if(data.error != ''){ 
     elem.show(); 
     return notify('error', data.error); 
    } 
    else{ 
     notify('success', 'App setup successful'); 
     $('.step3').slideUp(); 
     $('.step4').slideDown(); 
    } 
}); 
}); 
+0

あなたがテーブルを使用しようとしたときに作成時にこのエラーを取得していないことが確実な? –

+0

テーブルを作成するとエラーが発生することはないと思いますので、あなたの質問には含まれていないコードがあります。 –

+0

あなたのコメントをありがとう、私は質問を編集し、fb_app_idに関して見つけたコードを追加しました。お役に立てれば。このウェブサイトで発生します:http://pastebin.com/wdGjpP2u(次を押すとき) – Salexes

答えて

0

のindex.php私はそれがエラーの原因となっているCREATE TABLE文のだとは思いません。

列の値を指定しないINSERT文を実行すると、エラーが発生する可能性が高くなります。カラムに値が指定されていない場合、MySQLはそのカラムのデフォルト値を使用します。

1つのオプションは、テーブル定義を変更することです:

`fb_app_id` varchar(64) NOT NULL DEFAULT 'foo', 

しかし、単に次の列にエラーを移動する可能性があるNOT NULLとして定義されているテーブル内の他の列の数を、与えられました。 INSERT文を調べなければ、「修正」が最も適切なものを推測しているだけです。デモンストレーションとして


CREATE TABLE my_t 
(id INT UNSIGNED NOT NULL PRIMARY KEY 
, foo VARCHAR(4) NOT NULL 
); 

INSERT INTO my_t (id) VALUES (1); 
-- Error Code: 1364 
-- Field 'foo' doesn't have a default value 

INSERT INTO my_t (id,foo) VALUES (2,NULL); 
-- Error Code: 1048 
-- Column 'foo' cannot be null 

ALTER TABLE my_t CHANGE foo foo VARCHAR(4) NOT NULL DEFAULT NULL ; 
-- Error Code: 1067 
-- Invalid default value for 'foo' 

ALTER TABLE my_t CHANGE foo foo VARCHAR(4) NOT NULL DEFAULT ''; 

INSERT INTO my_t (id) VALUES (3); 
-- 1 row(s) affected 
+0

あなたのコメントをありがとう、私は質問を編集し、fb_app_idに関して見つけたコードを追加しました。お役に立てれば。 – Salexes

+0

NEXTを押すとこのページが表示されます。http://pastebin.com/wdGjpP2u – Salexes

関連する問題