SQL de geçen dersimizde Insert Into komutuyla bir tabloya veri eklemeyi görmüştük.

Bu yazımda da aynı işleme devam edeceğiz ama bu sefer Foreign Key olan bir tabloya veri eklemeyi göreceğiz.

Aslında temelde bir farklılık yok sadece dikkat etmemiz gereken bir durum var oda bağlı tablolarda Primary Key’in olduğu tabloda eklenecek olan değerin var olmasıdır.

XENONBOX veri tabanımızdaki ORDERS tablosuna bir sipariş girdisi ekleyeceğiz. 

ORDERS tablosu CUSTOMER tablosu ile ilişkili olduğu için siparişi verebilecek kişinin sisteme kayıtlı olması beklenir.

Önce olmayan bir müşteri üzerinden sipariş kaydetmeye çalışalım.

INSERT INTO ORDERS (ID,ORDERDATE,ORDERNUMBER,TOTALAMOUNT,CUSTOMERID) VALUES 
(6,'2013-08-30','10000',100,5)

5 Nolu müşteri sistemde kayıtlı değil ama siparişi verenin 5 numaralı müşteri olduğunu bildirip kaydetmeye çalıştık.

Alacağımız hata aşağıdaki gibidir.

The INSERT statement conflicted with the FOREIGN KEY constraint “FK__ORDERS__CUSTOMER__571DF1D5”. The conflict occurred in database “XENONBOX”, table “dbo.CUSTOMER”, column ‘ID’. The statement has been terminated.

Şimdi var olan 4 numaralı müşteri ile bir sipariş girmeye çalışalım.

INSERT INTO ORDERS (ID,ORDERDATE,ORDERNUMBER,TOTALAMOUNT,CUSTOMERID) VALUES 
(6,'2013-08-30','10000',100,4)

Bunu eklerken herhangi bir sorun almadık sipariş böylece kaydolmuş oldu.

Datetime Kolonuna Değer Girmek

Burada bir konuya daha değinmekte fayda var. 

ORDERDATE kolonun veri türü Datetime bu veri türü girilirken aşağıdaki 2 yöntem kullanılabilir.

YYYY-MM-DD HH:MM:SS şeklinde bir formatta veri kaydedilebilir.

Yani 2017-01-01 21:00:00 şeklinde kayıt edilebilir.

Bununla beraber saati yazmadan sadece 2017-01-01 şeklinde de kaydedilebilir. Eğer saat verisi girilmez ise 00:00:00 olarak kaydedilecektir.

Bunları görelim.

INSERT INTO ORDERS (ID,ORDERDATE,ORDERNUMBER,TOTALAMOUNT,CUSTOMERID) VALUES 
(1,'2013-08-30 21:00:00','10000',100,3)

Datetime kolonu veri tabanı işlerinde genelde çok farklı fonksiyonları olan ve sorun çıkaran veri tipidir. Ama hepsini iyi bir şekilde öğrenmeye devam edeceğiz.

Bu yazımında sonuna geldim görüşmek üzere.


What's Your Reaction?

hate hate
0
hate
fail fail
0
fail
fun fun
0
fun
geeky geeky
0
geeky
love love
0
love
lol lol
0
lol
omg omg
0
omg
win win
0
win
Murat Bilginer
21 Şubat 1992 Doğumlu. Endüstri Mühendisi olarak Lisansını 2016 yılında tamamlamıştır. Industryolog Akademi - NGenius oluşumlarının kurucusudur. Şu anda kendi şirketi Brainy Tech ile hem Yazılım Hizmetleri Sunmakta Hem de Online Eğitimler Vermektedir.