86 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
# ORM
 | 
						|
 | 
						|
## Attributes
 | 
						|
 | 
						|
### Structs
 | 
						|
 | 
						|
- `[table: 'name']` sets a custom table name
 | 
						|
 | 
						|
### Fields
 | 
						|
 | 
						|
- `[primary]` sets the field as the primary key
 | 
						|
- `[unique]` sets the field as unique
 | 
						|
- `[unique: 'foo']` adds the field to a unique group
 | 
						|
- `[skip]` field will be skipped
 | 
						|
- `[sql: type]` sets the type which is used in sql (special type `serial`)
 | 
						|
- `[sql: 'name']` sets a custom column name for the field
 | 
						|
 | 
						|
## Usage
 | 
						|
 | 
						|
```v ignore
 | 
						|
struct Foo {
 | 
						|
    id   int    [primary; sql: serial]
 | 
						|
    name string [nonull]
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Create
 | 
						|
 | 
						|
```v ignore
 | 
						|
sql db {
 | 
						|
    create table Foo
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Drop
 | 
						|
 | 
						|
```v ignore
 | 
						|
sql db {
 | 
						|
    drop table Foo
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Insert
 | 
						|
 | 
						|
```v ignore
 | 
						|
var := Foo{
 | 
						|
    name: 'abc'
 | 
						|
}
 | 
						|
 | 
						|
sql db {
 | 
						|
    insert var into Foo
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Update
 | 
						|
 | 
						|
```v ignore
 | 
						|
sql db {
 | 
						|
    update Foo set name = 'cde' where name == 'abc'
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Delete
 | 
						|
```v ignore
 | 
						|
sql db {
 | 
						|
    delete from Foo where id > 10
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Select
 | 
						|
```v ignore
 | 
						|
result := sql db {
 | 
						|
    select from Foo where id == 1
 | 
						|
}
 | 
						|
```
 | 
						|
```v ignore
 | 
						|
result := sql db {
 | 
						|
    select from Foo where id > 1 limit 5
 | 
						|
}
 | 
						|
```
 | 
						|
```v ignore
 | 
						|
result := sql db {
 | 
						|
    select from Foo where id > 1 order by id
 | 
						|
}
 | 
						|
```
 |