MySQL veri ekleme hatası

FaTaLz

Hectopat
Katılım
25 Nisan 2020
Mesajlar
31
Çözümler
1
Merhaba.

Create schema aracKiralama; Use aracKiralama; Create table personel( P_sicil_no int primary key, P_ad varchar(75), P_soyad varchar(75), P_yaş date, İse_başlama_tarihi date, İşten_ayrılma_tarihi date); Create table arac( Arac_no int primary key, Yıl int, Marka varchar(150), Model varchar(150), Km int, Kasko varchar(50), Kiralama_ücreti int, Constraint FK1 foreign key(marka) References marka(marka_no), Constraint FK2 foreign key(model) References model(model_no) ); Create table musteri( M_no int primary key, M_ad varchar(175), M_soyad varchar(175), M_eğitim varchar(75), M_adres varchar(375), M_tel int); Create table marka( Marka_no varchar(100) primary key, Marka_bilgisi varchar(250) ); Create table model( Model_no varchar(100) primary key, Model_bilgisi varchar(250) ); Create table kiralama( Musteri int, Arac int, Personel int, Kiralama_tarihi date, Constraint FK3 foreign key(arac) References arac(arac_no), Constraint FK4 foreign key(personel) References personel(p_sicil_no), Constraint FK5 foreign key(musteri) References musteri(m_no) ); İnsert into arac (Arac_no, yıl, marka, model, km, kasko, kiralama_ücreti) values (100,"1997","BMW","E30","190.000","VAR","200"); Bir veri eklemeye çalışıyorum ve 15:50:39 insert into arac (arac_no, yıl, marka, model, km, kasko, kiralama_ücreti) values (100,"1997","BMW","E30","190.000","VAR","200") Error Code: 1452. Cannot add or Update'a child row: A foreign key constraint fails ('arackiralama'.'arac', CONSTRAINT 'FK1' FOREIGN KEY ('marka') REFERENCES 'marka' ('marka_no')) 0.015 sec

Hatasını alıyorum. Çözümü nasıldır?
 
Merhaba. Chatgpt diye bir proje var. chat botu ile sohbet ederek sorularınızı sorup cevap alabilirsiniz .sanırım yapay zeka ile çalışan bir bot bu ben sizin için sordum bana verdiği cevap aşağıda. Ama bir ayrıntı vermek istiyorum. Cevabı Türkçe olarak istediğimde önerdiği komutlarda bir sıkıntı yaşıyor ve düzgün cevaplamiyor.

Tablonuz oluşturma komutlarında bazı sorunlar var. Özet olarak bu sorunların çözümleri şunlar:

arac tablosunda, marka ve model sütunları varchar(150) tipinde tanımlanmış, ancak FK1 ve FK2 sınırlamaları marka ve model tablosunda marka_no ve model_no sütunlarına gönderme yapmaya çalışıyor. Bu sütunların veri türleri marka ve model sütunlarıyla aynı olmalıdır.

arac tablosunda, FK1 ve FK2 sınırlamalarını tanımladınız, ancak marka ve model tablosunu oluşturmadınız. arac tablosunu oluşturmadan önce bu tablolardan oluşturmalısınız.

arac tablosunda, marka ve model değerleri olarak "BMW" ve "E30" değerlerini kullanmaya çalışıyorsunuz, ancak bu değerler marka ve model tablosunda mevcut değil. Bu değerleri marka ve model tablosuna eklemeniz gerekiyor veya marka ve model tablosunun anahtar değerlerini kullanmalısınız.

arac tablosunda, km sütunu int tipinde tanımlanmış, ancak bu sütuna bir dize değeri ("190.000") eklemeye çalışıyorsunuz. km sütununun veri türünü varchar veya float olarak değiştirin veya bu sütuna sayısal bir değer ekleyin.

arac tablosunda, kiralama_ücreti sütunu int tipinde tanımlanmış, ancak bu sütuna bir dize değeri ("200") eklemeye çalışıyorsunuz. kiralama_ücreti sütununun veri türünü varchar veya float olarak değiştirin veya bu sütuna sayısal bir değer ekleyin.

Bu sorunları çözmek için aşağıdaki SQL komutlarını deneyebilirsiniz:

CREATE SCHEMA aracKiralama;
USE aracKiralama;

CREATE TABLE marka (
marka_no VARCHAR(100) PRIMARY KEY,
marka_bilgisi VARCHAR(250)
);

CREATE TABLE model (
model_no VARCHAR(100) PRIMARY KEY,
model_bilgisi VARCHAR(250)
);

CREATE TABLE arac (
arac_no INT PRIMARY KEY,
yıl INT,
marka VARCHAR(150),
model VARCHAR(150),
km INT,
kasko VARCHAR(50),
kiralama_ücreti INT,
CONSTRAINT FK1 FOREIGN KEY (marka) REFERENCES marka (marka_no),
CONSTRAINT FK2 FOREIGN KEY (model) REFERENCES model (model_no)
);

CREATE TABLE personel (
p_sicil_no INT PRIMARY KEY,
p_ad VARCHAR(75),
p_soyad VARCHAR(75),
p_yaş DATE
 
Merhaba. Chatgpt diye bir proje var. Chat botu ile sohbet ederek sorularınızı sorup cevap alabilirsiniz. Sanırım yapay zeka ile çalışan bir bot bu ben sizin için sordum bana verdiği cevap aşağıda. Ama bir ayrıntı vermek istiyorum. Cevabı Türkçe olarak istediğimde önerdiği komutlarda bir sıkıntı yaşıyor ve düzgün cevaplamiyor.

Tablonuz oluşturma komutlarında bazı sorunlar var. Özet olarak bu sorunların çözümleri şunlar:

Arac tablosunda, marka ve model sütunları varchar(150) tipinde tanımlanmış, ancak FK1 ve FK2 sınırlamaları marka ve model tablosunda marka_no ve model_no sütunlarına gönderme yapmaya çalışıyor. Bu sütunların veri türleri marka ve model sütunlarıyla aynı olmalıdır.

Arac tablosunda, FK1 ve FK2 sınırlamalarını tanımladınız, ancak marka ve model tablosunu oluşturmadınız. Arac tablosunu oluşturmadan önce bu tablolardan oluşturmalısınız.

Arac tablosunda, marka ve model değerleri olarak "BMW" ve "E30" değerlerini kullanmaya çalışıyorsunuz, ancak bu değerler marka ve model tablosunda mevcut değil. Bu değerleri marka ve model tablosuna eklemeniz gerekiyor veya marka ve model tablosunun anahtar değerlerini kullanmalısınız.

Arac tablosunda, km sütunu int tipinde tanımlanmış, ancak bu sütuna bir dize değeri ("190.000") eklemeye çalışıyorsunuz. Km sütununun veri türünü varchar veya float olarak değiştirin veya bu sütuna sayısal bir değer ekleyin.

Arac tablosunda, kiralama_ücreti sütunu int tipinde tanımlanmış, ancak bu sütuna bir dize değeri ("200") eklemeye çalışıyorsunuz. Kiralama_ücreti sütununun veri türünü varchar veya float olarak değiştirin veya bu sütuna sayısal bir değer ekleyin.

Bu sorunları çözmek için aşağıdaki SQL komutlarını deneyebilirsiniz:

Create schema arackiralama;
Use arackiralama;

Create table marka (
Marka_no varchar(100) prımary key,
Marka_bilgisi varchar(250)
);

Create table model (
Model_no varchar(100) prımary key,
Model_bilgisi varchar(250)
);

Create table arac (
Arac_no ınt prımary key,
Yıl ınt,
Marka varchar(150),
Model varchar(150),
Km ınt,
Kasko varchar(50),
Kiralama_ücreti ınt,
Constraınt FK1 foreıgn key (marka) references marka (marka_no),
Constraınt FK2 foreıgn key (model) references model (model_no)
);

Create table personel (
P_sicil_no ınt prımary key,
P_ad varchar(75),
P_soyad varchar(75),
P_yaş date.

Hata verdi maalesef.
 
Aldığınız hatayı chata yazarak neden hata verdiğini anlamaya çalışın. Sonrasında siz kendiniz düzeltin hatayı. Programcı arkadaşların takıldığı sitelere sorun belki orada daha fazla bilgi alabilirsiniz.
 

Yeni konular

Geri
Yukarı